Advertisement
Guest User

Problème : "TUTO PHP - AJOUTER UNE PHOTO DE PROFIL / AVATAR"

a guest
Jul 25th, 2016
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.89 KB | None | 0 0
  1. Bonjour !
  2.  
  3. J'ai suivis le tutoriel pour avoir un avatar, mais cela ne fonctionne pas et aucune erreur ne s'affiche, que ça soit erreur "$msg" ou des erreurs PHP. Dans la vidéo lors du "moment de test" cela ne fonctionnait pas non plus, j'ai le même problème au fait prêt que moi, ma page ne redirige pas vers le profil. Je ne sais donc pas si le problème est le positionnement de la section : "if(isset($_FILES['avatar'])" ou si il y a une erreur dans le code. En résumé, les images ne s'upload pas dans le dossier, et n'apparaissent pas dans la base de données.
  4.  
  5. Les codes sur ma page :
  6.  
  7. Code de traitement (Edition du profil + Avatar) :
  8.  
  9. <?php
  10. session_start();
  11.  
  12. require('include/config.php');
  13.  
  14. if(isset($_SESSION['id'])) {
  15.    $requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
  16.    $requser->execute(array($_SESSION['id']));
  17.    $user = $requser->fetch();
  18.  
  19.    if(isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo']) {
  20.       $newpseudo = htmlspecialchars($_POST['newpseudo']);
  21.       $insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
  22.       $insertpseudo->execute(array($newpseudo, $_SESSION['id']));
  23.       header('Location: profil.php?id='.$_SESSION['id']);
  24.    }
  25.    if(isset($_POST['newmail']) AND !empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail']) {
  26.       $newmail = htmlspecialchars($_POST['newmail']);
  27.       $insertmail = $bdd->prepare("UPDATE membres SET mail = ? WHERE id = ?");
  28.       $insertmail->execute(array($newmail, $_SESSION['id']));
  29.       header('Location: profil.php?id='.$_SESSION['id']);
  30.    }
  31.    if(isset($_POST['newmdp1']) AND !empty($_POST['newmdp1']) AND isset($_POST['newmdp2']) AND !empty($_POST['newmdp2'])) {
  32.       $mdp1 = sha1($_POST['newmdp1']);
  33.       $mdp2 = sha1($_POST['newmdp2']);
  34.       if($mdp1 == $mdp2) {
  35.          $insertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?");
  36.          $insertmdp->execute(array($mdp1, $_SESSION['id']));
  37.          header('Location: profil.php?id='.$_SESSION['id']);
  38.       } else {
  39.          $msg = "<div class=\"alert alert-danger\">Vos mots de passe ne correspondent pas !</div>";
  40.       }
  41.    }
  42.    if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name'])) {
  43.        $tailleMax = 2097152;
  44.        $extensionsValides = array('jpg', 'jpeg', 'png');
  45.        if($_FILES['avatar']['size'] <= $tailleMax)
  46.        {
  47.            $extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
  48.            if(in_array($extensionUpload, $extensionsValides))
  49.            {
  50.                $chemin = "membres/avatars/".$_SESSION['id'].".".$extensionUpload;
  51.                $resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
  52.                if($resultat)
  53.                {
  54.                    $updateavatar = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
  55.                    $updateavatar->execute(array(
  56.                        'avatar' => $_SESSION['id'].".".$extensionUpload,
  57.                        'id' => $_SESSION['id']
  58.                       ));
  59.                    header('Location: profil.php?id='.$_SESSION['id']);
  60.                }
  61.                else
  62.                {
  63.                    $msg = "Une erreur s'est produite lors de l'envoi de votre fichier.";
  64.                }
  65.            }
  66.            else
  67.            {
  68.                $msg = "Votre photo de profil doit être au format jpg, jpeg ou png.";
  69.            }
  70.        }
  71.        else
  72.        {
  73.            $msg = "Votre photo de profil ne doit pas dépassée 2Mo.";
  74.            
  75.        }
  76.    }
  77. ?>
  78.  
  79. Mon input : <input type="file" name"avatar">
  80. Ma balise "form" : <form method="POST" enctype="multipart/form-data">
  81.  
  82. La ligne "<?php if(isset($msg)) { echo $msg; } ?>" est bien présente, mais n'affiche rien en rapport avec l'avatar. (Elle fonctionne concernant la modification du profil.)
  83.  
  84. Amicalement,
  85. Skill
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement