PHP

Erreur au niveau de la modification de l'avatar

Non Résolu

Salut tout le monde


J'ai pris le cours sur le developpement du site de a a z et j'ai des erreurs au niveau de la modification de l'avatar par defaut et on m'indique des erreurs a la ligne 70, 99, 101 et 106 sauf que je n'en ai pas trouvé,


Merci d'avance pour votre aide.


<?php
      session_start () ;


      include('bd/connexionDB.php') ;


            if(!empty($_POST)){
            extract($_POST);
            $valid = true;


            if(isset($_POST['avatar'])){


                if(isset($_FILES['file']) and !empty($_FILES['file']['name'])){


                    $filename = $_FILES ['file'] ['tmp_name'];


                    list($width_orig, $height_orig) = getimagesize($filename) ;


                    if ($width_orig >= 500 && $height_orig >= 500 && $width_orig <= 6000 && $height_orig <= 6000){


                          $ListeExtension = array('jpg' => 'image/jpg', 'jpeg' =>'image/jpeg', 'png' => 'image/png', 'gif' => 'image/gif');
                          $ListeExtensionIE = array('jpg' => 'image/pjpg', 'jpeg '=>'image/pjpeg');
                          $tailleMax = 5242880; // Taille maximum 5 Mo
                          //2mo 2097152
                          // 3mo = 3145728
                          // 4mo 4194304
                          //5mo 5242880
                          //7mo 7340032
                          //10mo= 10485760
                          //11 12mo = 12582912
                          $extensionsValides = array('jpg', 'jpeg'); // Format accepté


                          if ($_FILES['file']['size'] <= $tailleMax){ // Si le fichier et bien de taille inférieur ou égal à 5 Mo


                                $extensionUpload = strtolower(substr(strrchr($_FILES ['file']['name'], '.'), 1)); // Prend 1'extension après le point, soit "jpg, jpeg ou


                                if (in_array( $extensionUpload, $extensionsValides) ){ // vérifie que 1'extension est correct


                                      $dossier = "public/avatars/".$_SESSION['id']."/"; // On se place dans le dossier de la personne


                                      if (!is_dir($dossier)){ // Si le nom de dossier n'exis te pas alors on le crée
                                            mkdir($dossier) ;
                                      }else{


                                            if(file_exists ("public/avatars/".$_SESSION ['id']."/". $_SESSION['avatar']) && isset($_SESSION['avatar'])){


                                                  unlink("public/avatars/".$_SESSION['id']."/". $_SESSION['avatar']);


                                            }
                                        }




                                      $nom = md5(uniqid(rand(), true)) ; // Permet de générer un nom_unique à la photo
                                      $chemin= "public/avatars/".$_SESSION['id']."/".$nom.".".$extensionUpload; // Chemin pour placer_ la photo
                                      $resultat = move_uploaded_file($_FILES['file']['tmp_name'], $chemin) ; // 0On fini par mettre la photo dans le dossier


                                      if ($resultat) { // Si on a le résultat alors on va comprésser 1'image
                                      if (is_readable("public/avatars/".$_SESSION['id']."/".$nom.".".$extensionUpload)){


                                      $verif_ext = getimagesize("public/avatars/".$_SESSION['id']."/".$nom.".".$extensionUpload);


                                      // Vérification des extensions avec la liste des exten si ons autorisés
                                      if($verif_ext['mime'] = $ListeExtension[$extensionUpload] || $verif_ext ['mime'] == $ListeExtensionIE [$extensionUpload] ){


                                      // J'enregistre le chemin de 1'image dans fi lename
                                      $filename ="public/avatars/".$_SESSION['id']."/".$nom.".". $extensionUpload ;


                                      //Vérifica tion _des extensions queyje souhaite prendre
                                      if ($extensionUpload == 'jpg' || $extensionUpload == 'jpeg' || $extensionUpload == "pjpg" || $extensionUpload == 'pjpeg'){


                                            $image2 = imagecreatefromjpeg($filename);


                                      // Définition de la largeur et de la hauteur maximale
                                      $width2 = 500;
                                      $height2 = 500;


                                      List ($width_orig, $height_orig) = getimagesize ($filename) ;


                                      //Redimensionnement
                                      $image_p2 = imagecreatetruecolor ($width2, $height2) ;
                                      imagealphablending ($image_p2, false) ;
                                      imagesavealpha ($image_p2, true) ;


                                      // Cacul des nouvelles dimensions
                                      $point2 = 0;
                                      $ratio = null;
                                      if ($width_orig = $height_orig) {


                                            $ratio = $width2 / $width_orig;


                                      }else if ($width_orig > $height_orig){


                                            $ratio = $height2 / $height_orig;


                                      }


                                      $width2 = ($width_orig * $ratio) + 1;
                                      $height2 = ($height_orig * $ratio) + 1;


                                      imagecopyresampled($image_p2, $image2, 0, 0, $point2, 0, $width2, $height2, $width_orig, $height_orig);


                                      imagedestroy($image2);


                                      if ($extensionUpload == 'jpg' || $extensionUpload == 'jpeg' || $extensionupload == "pjpg" || $extensionUpload == 'pjpeg'){


                                      // Content type
                                      header('Content-Type: image/jpeg');


                                      $exif = exif_read_data ($filename) ;
                                      if(!empty ($exif['Orientation'] )){


                                            switch ($exif['Orientation']) {
                                              case 8:


                                                    $image_p2 = imagerotate($image_p2,90,0);
                                                // code...
                                                break;


                                              case 3:


                                                    $image_p2 = imagerotate($image_p2,100,0);
                                                // code...
                                                break;


                                              case 6:


                                                    $image_p2 = imagerotate($image_p2,-90,0);
                                                // code...
                                                break;
                                            }


                                      }


                                      //Affichage
                                      imagejpeg($image_p2,"public/avatars/".$_SESSION['id']."/".$nom.".".$extensionUpload, 75);
                                      imagedestroy($image_p2);


                                }


                                $DB->insert("UPDATE utilisateur SET avatar = ? WHERE id = ?", array(($nom.".".$extensionUpload), $_SESSION['id']));


                                $_SESSION['avatar'] = ($nom.".".$extensionUpload); //on met a jour l'avatars


                                //$_SESSION['flash']['success'] = "Nouvel avatar enregistré"
                              //  header('Location: profil.php');
                              //  exit;


                                ////////////////Fin de compression de l'images


                          }else {


                                $_SESSION['flash']['warning'] = "Le type de MIME de l'image n'est pas bon.";
                            // code...
                          }


                    }


              }else {


                    $_SESSION['flash']['error'] = "Erreur lors de l'importation de votre photo.";


              }


      }else {


            $_SESSION['flash']['warning'] = "Votre photo doit etre au format jpg.";


      }


}else {


      $_SESSION['flash']['warning'] = "Votre photo de profil ne doit pas depasser 5 Mo !";


}


}else {


      $_SESSION['flash']['warning'] = "Dimensions de l'image minimum 400 x 400 et maximum 6000 x 6000 !";


}


}else {


      $_SESSION['flash']['warning'] = "Veuillez mettre une image !";


} }else if(isset($_POST['dltav'])) {




      // Permet de supprimer une image dans un $dossier
      if (file_exists("public/avatars".$_SESSION['id']."/".$_SESSION['avatar']) && isset($_SESSION['avatar'])) {


            unlink("public/avatars". $_SESSION['id']."/".$_SESSION['avatar']);
            rmdir("public/avatars". $_SESSION['id']."/");


            $DB->insert("UPDATE utilisateur SET avatar = ? WHERE id = ?", array(NULL, $_SESSION['id']));


            $_SESSION['avatar'] = NULL; //On met a jour l'avatar
        // code...
      }


      $_SESSION['flash']['success'] = "Votre avatar à été supprimé !";
      header('Location: profil');
      exit;
}


}
}


?>




<!DOCTYPE html>
<html lang="fr">
    <head>
        <!-- <base href="/"/> -->
        <meta charset="utf-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
        <title>Topic</title>
        <link rel="stylesheet" href="css/bootstrap.min.css">
        <?php


            if (isset($_SESSION['id']) && $_SESSION['theme'] == 1) {


                echo '<link rel="stylesheet" href="style-sombre1.css">';
              // code...
            } else {


                echo '<link rel="stylesheet" href="style.css">';
              // code...
            }


        ?>
    </head>


    <body>


      <?php include('nav.php') ?> <br>


        <!-- Ici on peut afficher toutes les informations que vous souhaitez :
            - �ge,
            - sexe,
            - date d'anniversaire,
            - mail,
            - etc.
        -->


        <?php $afficher_profil = $DB->query("SELECT * FROM utilisateur WHERE id = ?",
            array($_SESSION['id']));


        $afficher_profil = $afficher_profil->fetch(); ?>




        <div class="container">


              <div class="row">


                    <div class="col-sm-12 col-md-12 col-lg-12">


                          <div class="alert alert-secondary cdr-ins">


                                <h4 style="color:#fff;">Voici le profil de <?= $afficher_profil['prenom'] . " " .  $afficher_profil['nom']; ?></h4>


                                <div style="margin:20px 0;">


                                      <?php
                                            if (file_exists("public/avatars/".$_SESSION['id']. "/" .$_SESSION['avatar']) && isset($_SESSION['avatar'])) {
                                      ?>


                                            <img src="<?= "public/avatars/".$_SESSION['id']. "/" .$_SESSION['avatar']; ?>" width="120" class="rounded-circle">


                                      <?php
                                            } else{
                                      ?>


                                      <img src="public/avatars/defaults/images.png" width="120" class="rounded-circle">


                                      <?php
                                            }
                                       ?>


                                </div>


                                <span class="image-upload">


                                      <form enctype="multipart/form-data" method="post">


                                            <label for="file" style="margin-bottom:0; margin-top:5px; display:inline-flex;">


                                                  <input type="file" class="form-control hide-upload" id="file" name="file" required/>
                                                  &nbsp
                                                  <input class="btn btn-info" type="submit" name="avatar" value="Envoyer">


                                            </label>


                                      </form>


                                </span>


                                <div style="border-top: 2px solid #eee; margin-top:20px; padding-top:20px;">


                                      <form method="post">


                                            <label> <b>Supprimer l'avatar</b> </label>


                                            <input type="submit" class="fa trash-avatar" name="dltav" value="Supprimer">


                                      </form>


                                </div>


                          </div>


                    </div>


              </div>


        </div>


            <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
              	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
              	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    <body>
</html>


1095 vues
12 juillet 2020 à 23:30 (Édité)
Cette pub permet au site de vivre ...

13 commentaires

Re:


Pas de soucis !

Alors quand je te demande un lien d'un article de formation ou d'un tutoriel vidéo, il s'agit de "https://www" dans la barre d'adresse de ton navigateur que tu dois copier/coller dans la balise [LIEN] (en savoir plus sur les balises) 😉

Le titre que tu m'as donné correspond à cette vidéo dont l'article de formation est celui-ci...

Ma question est la suivante : as-tu regardé cet article ? 🤔

Hey @Jerem971


Sorry pour le titre et la mauvaise écriture

Je sais pas trop ce que tu attend en parlant de lien, mais néamoins c'est la video intitulé PHP _11 Ajouter une image à son profil

De la série creer un site de A a Z


Cordialement

Hello @Gael-Mk,


Attention au titre des topics ! Un titre clair et précis n'est pas de refus ! 😉 (J'ai réédité cela)

N'hésite pas à mettre un espace entre tes paragraphes...

Peux-tu nous donner le lien de l'article de formation concerné ? 🤔

On va essayé de résoudre le problème ! 😉

Cette pub permet au site de vivre ...
1
2