Uploald un avatar [Résolu]

Signaler
Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020
-
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
-
bonsoir j'aimerais l'aide avec mon code php je m’excuse aussi suis un débutant
le problème est que quand j essaye Upload l'avatar sa marche pas
<?php
session_start();

$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');

if(isset($_SESSION['id'])) {
$requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
$requser->execute(array($_SESSION['id']));
$user = $requser->fetch();
if(isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo']) {
$newpseudo = htmlspecialchars($_POST['newpseudo']);
$insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
$insertpseudo->execute(array($newpseudo, $_SESSION['id']));
header('Location: profil.php?id='.$_SESSION['id']);
}
if(isset($_POST['newmail']) AND !empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail']) {
$newmail = htmlspecialchars($_POST['newmail']);
$insertmail = $bdd->prepare("UPDATE membres SET mail = ? WHERE id = ?");
$insertmail->execute(array($newmail, $_SESSION['id']));
header('Location: profil.php?id='.$_SESSION['id']);
}
if(isset($_POST['newmdp1']) AND !empty($_POST['newmdp1']) AND isset($_POST['newmdp2']) AND !empty($_POST['newmdp2'])) {
$mdp1 = sha1($_POST['newmdp1']);
$mdp2 = sha1($_POST['newmdp2']);
if($mdp1 == $mdp2) {
$insertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?");
$insertmdp->execute(array($mdp1, $_SESSION['id']));
header('Location: profil.php?id='.$_SESSION['id']);
} else {
$msg = "Vos deux mdp ne correspondent pas !";
}
}
if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name'])) {
echo $avatar;
$tailleMax = 2097152;
$extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
if($_FILES['avatar']['size'] <= $tailleMax) {
$extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
if(in_array($extensionUpload, $extensionsValides)) {
$chemin = "membres/avatars/".$_SESSION['id'].".".$extensionUpload;
$resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
if($resultat) {
$updateavatar = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
$updateavatar->execute(array(
'avatar' => $_SESSION['id'].".".$extensionUpload,
'id' => $_SESSION['id']
));
header('Location: profil.php?id='.$_SESSION['id']);
} else {
$msg = "Erreur durant l'importation de votre photo de profil";
}
} else {
$msg = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
}
} else {
$msg = "Votre photo de profil ne doit pas dépasser 2Mo";
}
}
?>
<html>
<head>
<title>TUTO PHP</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Edition de mon profil</h2>
<div align="left">
<form method="POST" action="" enctype="multipart/form-data">
<label>Pseudo :</label>
<input type="text" name="newpseudo" placeholder="Pseudo" value="<?php echo $user['pseudo']; ?>" /><br /><br />
<label>Mail :</label>
<input type="text" name="newmail" placeholder="Mail" value="<?php echo $user['mail']; ?>" /><br /><br />
<label>Mot de passe :</label>
<input type="password" name="newmdp1" placeholder="Mot de passe"/><br /><br />
<label>Confirmation - mot de passe :</label>
<input type="password" name="newmdp2" placeholder="Confirmation du mot de passe" /><br /><br />
<label>Avatar :</label>
<input type="file" name="Avatar"/><br /><br />
<input type="submit" value="Mettre à jour mon profil !" />


</form>
<?php if(isset($msg)) { echo $msg; } ?>
</div>
</div>
</body>
</html>
<?php
}
else {
header("Location: connexion.php");
}
?>

6 réponses

Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862
Bonjour

Commence par appliquer le contenu de
Ce lien http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

puis montre-nous ton code modifié et indique nous l'éventuel message d'erreur
Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020

 
<?php
sesson_start();
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

$bdd =new PDO('mysql:host=localhost;
 dbname=espace_membre; charset=utf8', 'root', '');

 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}


 
if(isset($_SESSION['id'])) {
   $requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
   $requser->execute(array($_SESSION['id']));
   $user = $requser->fetch();
   if(isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo']) {
      $newpseudo = htmlspecialchars($_POST['newpseudo']);
      $insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
      $insertpseudo->execute(array($newpseudo, $_SESSION['id']));
      header('Location: profil.php?id='.$_SESSION['id']);
   }
   if(isset($_POST['newmail']) AND !empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail']) {
      $newmail = htmlspecialchars($_POST['newmail']);
      $insertmail = $bdd->prepare("UPDATE membres SET mail = ? WHERE id = ?");
      $insertmail->execute(array($newmail, $_SESSION['id']));
      header('Location: profil.php?id='.$_SESSION['id']);
   }
   if(isset($_POST['newmdp1']) AND !empty($_POST['newmdp1']) AND isset($_POST['newmdp2']) AND !empty($_POST['newmdp2'])) {
      $mdp1 = sha1($_POST['newmdp1']);
      $mdp2 = sha1($_POST['newmdp2']);
      if($mdp1 == $mdp2) {
         $insertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?");
         $insertmdp->execute(array($mdp1, $_SESSION['id']));
   }catch(Exception $e){
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($mdp1, $_SESSION['id']);
}
         header('Location: profil.php?id='.$_SESSION['id']);
      } else {
         $msg = "Vos deux mdp ne correspondent pas !";
      }
   }
   if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name'])) {
      echo $avatar;
   $tailleMax = 2097152;
   $extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
   if($_FILES['avatar']['size'] <= $tailleMax) {
      $extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
      if(in_array($extensionUpload, $extensionsValides)) {
         $chemin = "membres/avatars/".$_SESSION['id'].".".$extensionUpload;
         $resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
         if($resultat) {
            $updateavatar = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
            $updateavatar->execute(array(
               'avatar' => $_SESSION['id'].".".$extensionUpload,
               'id' => $_SESSION['id']
               ));}catch(Exception $e){
  
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r('avatar' => $_SESSION['id'].".".$extensionUpload,
               'id' => $_SESSION['id']);
}
            header('Location: profil.php?id='.$_SESSION['id']);
         } else {
            $msg = "Erreur durant l'importation de votre photo de profil";
         }
      } else {
         $msg = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
      }
   } else {
      $msg = "Votre photo de profil ne doit pas dépasser 2Mo";
   }
}
?>
<html>
   <head>
      <title>TUTO PHP</title>
      <meta charset="utf-8">
   </head>
   <body>
      <div align="center">
         <h2>Edition de mon profil</h2>
         <div align="left">
            <form method="POST" action="" enctype="multipart/form-data">
               <label>Pseudo :</label>
               <input type="text" name="newpseudo" placeholder="Pseudo" value="<?php echo $user['pseudo']; ?>" /><br /><br />
               <label>Mail :</label>
               <input type="text" name="newmail" placeholder="Mail" value="<?php echo $user['mail']; ?>" /><br /><br />
               <label>Mot de passe :</label>
               <input type="password" name="newmdp1" placeholder="Mot de passe"/><br /><br />
               <label>Confirmation - mot de passe :</label>
               <input type="password" name="newmdp2" placeholder="Confirmation du mot de passe" /><br /><br />
               <label>Avatar :</label>
               <input type="file" name="Avatar"/><br /><br />
               <input type="submit" value="Mettre à jour mon profil !" />


            </form>
            <?php if(isset($msg)) { echo $msg; } ?>
         </div>
      </div>
   </body>
</html>
<?php   
}
else {
   header("Location: connexion.php");
}
?> 


Edit: correction des balises de code
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862 >
Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020

Il manque les try/catch. ... Et le message d'erreur...
--
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862
Voici ton code légèrement amélioré et corrigé

<?php

session_start();
//----------------------------
//affichage des erreurs php
//----------------------------
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//----------------------------
//connexion à la bdd
//----------------------------
try{
 $bdd =new PDO('mysql:host=localhost;dbname=espace_membre; charset=utf8', 'root', '');
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}

//----------------------------
//fonctions
//----------------------------
  /**
  * Requête PDO
  */
  function db_Exec($sql,$datas=NULL){
    try{
      $prep = $bdd->prepare($sql);
      return $prep->execute($datas);
    }catch(Exception $e){
      echo " Erreur ! ".$e->getMessage();
      echo " Les datas : " ;
      print_r($datas);
      exit;
    }
  }
  //-------------------------------
  // Fonctions pour les membres:
  //------------------------------
  function getMembmreById($id){
    $sql = "SELECT * FROM membres WHERE id = ?";
    $datas = array($id);
    $dbRes = db_Exec($sql,$datas);
    return $dbRes->fetch();
  }

  function updatePseudo($id,$pseudo){
    $sql = "UPDATE membres SET pseudo = ? WHERE id = ?";
    $datas = array($pseudo,$id);
    $dbRes = db_Exec($sql,$datas);
  }

  function updateMail($id,$mail){
    $sql = "UPDATE membres SET mail = ? WHERE id = ?";
    $datas = array($mail,$id);
    $dbRes = db_Exec($sql,$datas);
  }

  function updateMotdepasse($id,$motdepasse){
    $sql = "UPDATE membres SET motdepasse = ? WHERE id = ?";
    $datas = array($motdepasse,$id);
    $dbRes = db_Exec($sql,$datas);
  }

  function updateAvatar($id,$avatar){
    $sql = "UPDATE membres SET avatar = :avatar WHERE id = :id";
    $datas = array(':avatar'=>$avatar,':id'=>$id);
    $dbRes = db_Exec($sql,$datas);
  }




//----------------------------
//récupération propre des variables AVANT de les utiliser
//----------------------------
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;

$newpseudo = !empty($_POST['newpseudo']) ? $_POST['newpseudo'] : NULL;
$newmail = !empty($_POST['newmail']) ? $_POST['newmail'] : NULL;
$newmdp1 = !empty($_POST['newmdp1']) ? $_POST['newmdp1'] : NULL;
$newmdp2 = !empty($_POST['newmdp2']) ? $_POST['newmdp2'] : NULL;
$avatar = !empty($_FILES['avatar']) ? $_FILES['avatar'] : NULL;

//----------------------------
//début du traitement
//----------------------------

//si l'utilisateur n'est pas connecté :
if(!$id){
 header("Location: connexion.php");
 exit;
}
 
//on récupère les infos de l'utilisateur :
$user = $getMembmreById($id);

if(empty($user)){
  //utilisateur inconnu...
  header("Location: connexion.php");
  exit;
}

if($newpseudo != $user['pseudo']) {
  updatePseudo($id,$newpseudo)
  header('Location: profil.php?id='.$id);
  exit; //toujours mettre un exit apres une redirection
}

if($newmail != $user['mail']) {
  updateMail($newmail,$id);
  header('Location: profil.php?id='.$id);
  exit;
}
  
if($newmdp1 && $newmdp2)) {
  $mdp1 = sha1($newmdp1); // la methode SHA n'est plus sécurisée, renseigne toi sur la fonction password_hash
  $mdp2 = sha1($newmdp2);
  if($mdp1 == $mdp2) {
     updateMotdepasse($id,$mdp1);
     header('Location: profil.php?id='.$id);
     exit;
  } else {
     $msg = "Vos deux mdp ne correspondent pas !";
  }
}

if($avatar){
  $tailleMax = 2097152;
  $extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
  if($avatar['size'] <= $tailleMax) {

    $extensionUpload = strtolower(substr(strrchr($avatar['name'], '.'), 1));
    if(in_array($extensionUpload, $extensionsValides)) {
       $dirUpload = "membres/avatars/";
       
      if (is_writable($dirUpload)) {
        $avatarName = $id.".".$extensionUpload;
        $chemin = $dirUpload.$avatarName;
        if( move_uploaded_file($avatar['tmp_name'], $chemin)) {
          updateAvatar($id,$avatarName);
          header('Location: profil.php?id='.$id);
          exit;
        } else {
          $msg = "Erreur durant l'importation de votre photo de profil";
        }
      } else {
          $msg = 'Le dossier '.$dirUpload.' n\'est pas accessible en écriture !';
      } 
    } else {
       $msg = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
    }
  } else {
    $msg = "Votre photo de profil ne doit pas dépasser 2Mo";
  }
}
?>
<html>
   <head>
      <title>TUTO PHP</title>
      <meta charset="utf-8">
   </head>
   <body>
      <div align="center">
         <h2>Edition de mon profil</h2>
         <div align="left">
            <form method="POST" action="" enctype="multipart/form-data">
               <label>Pseudo :</label>
               <input type="text" name="newpseudo" placeholder="Pseudo" value="<?php echo $user['pseudo']; ?>" /><br /><br />
               <label>Mail :</label>
               <input type="text" name="newmail" placeholder="Mail" value="<?php echo $user['mail']; ?>" /><br /><br />
               <label>Mot de passe :</label>
               <input type="password" name="newmdp1" placeholder="Mot de passe"/><br /><br />
               <label>Confirmation - mot de passe :</label>
               <input type="password" name="newmdp2" placeholder="Confirmation du mot de passe" /><br /><br />
               <label>Avatar :</label>
               <input type="file" name="Avatar"/><br /><br />
               <input type="submit" value="Mettre à jour mon profil !" />


            </form>
            <?php if(isset($msg)) { echo $msg; } ?>
         </div>
      </div>
   </body>
</html>



Comme tu peux le voir, j'ai découpé ton code en "fonctions".
Cela rend le code plus lisible et plus facile à maintenir.
Je te conseille de placer la connexion à ta bdd dans un fichier à part et les fonctions dans un autre, et de les inclure lorsque tu en as besoin. (pour éviter de les écrire plusieurs fois dans tes différentes pages de ton site).


Au passage, lorsque tu postes du code sur le forum, merci d'indiquer dans les balises de code, le langage afin d'avoir la coloration syntaxique et l'indentation.
Explications à lire entièrement, disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Je t'invite également à lire les conseils donnés ici pour l'écriture de ton code php :
http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Tu verras également que j'ai mis un commentaire sur le "cryptage" des mots de passe.
Désormais, il faut passer par la fonction password_hash
mais je te laisse le changer toi même.




Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020

merci beaucoup

j'ai petit souci enfaîte j'ai suivi les instruction mais sa me donne ce message d'erreur:

Parse error: syntax error, unexpected 'header' (T_STRING) in C:\xampp\htdocs\editionprofil.php on line 108
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862
Ligne 107, j'ai oublié un point-virgule
Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020
>
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020

suis vraiment du dérangement
il parait que ya toujours un souci


Notice: Undefined variable: getMembreById in C:\xampp\htdocs\editionprofil.php on line 98

Fatal error: Uncaught Error: Function name must be a string in C:\xampp\htdocs\editionprofil.php:98 Stack trace: #0 {main} thrown in C:\xampp\htdocs\editionprofil.php on line 98
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862 >
Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020

Arf....
$user = $getMembmreById($id);

A corriger en

$user = getMembmreById($id);
Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020
>
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020

    c'est le même problème

Notice: Undefined variable: getMembmreById in C:\xampp\htdocs\editionprofil.php on line 98

Fatal error: Uncaught Error: Function name must be a string in C:\xampp\htdocs\editionprofil.php:98 Stack trace: #0 {main} thrown in C:\xampp\htdocs\editionprofil.php on line 98
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862
<?php

session_start();
//----------------------------
//affichage des erreurs php
//----------------------------
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//----------------------------
//connexion à la bdd
//----------------------------
try{
 $bdd =new PDO('mysql:host=localhost;dbname=espace_membre; charset=utf8', 'root', '');
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}

//----------------------------
//fonctions
//----------------------------
  /**
  * Requête PDO
  */
  function db_Exec($sql,$datas=NULL){
    try{
      $prep = $bdd->prepare($sql);
      return $prep->execute($datas);
    }catch(Exception $e){
      echo " Erreur ! ".$e->getMessage();
      echo " Les datas : " ;
      print_r($datas);
      exit;
    }
  }
  //-------------------------------
  // Fonctions pour les membres:
  //------------------------------
  function getMembreById($id){
    $sql = "SELECT * FROM membres WHERE id = ?";
    $datas = array($id);
    $dbRes = db_Exec($sql,$datas);
    return $dbRes->fetch();
  }

  function updatePseudo($id,$pseudo){
    $sql = "UPDATE membres SET pseudo = ? WHERE id = ?";
    $datas = array($pseudo,$id);
    $dbRes = db_Exec($sql,$datas);
  }

  function updateMail($id,$mail){
    $sql = "UPDATE membres SET mail = ? WHERE id = ?";
    $datas = array($mail,$id);
    $dbRes = db_Exec($sql,$datas);
  }

  function updateMotdepasse($id,$motdepasse){
    $sql = "UPDATE membres SET motdepasse = ? WHERE id = ?";
    $datas = array($motdepasse,$id);
    $dbRes = db_Exec($sql,$datas);
  }

  function updateAvatar($id,$avatar){
    $sql = "UPDATE membres SET avatar = :avatar WHERE id = :id";
    $datas = array(':avatar'=>$avatar,':id'=>$id);
    $dbRes = db_Exec($sql,$datas);
  }




//----------------------------
//récupération propre des variables AVANT de les utiliser
//----------------------------
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;

$newpseudo = !empty($_POST['newpseudo']) ? $_POST['newpseudo'] : NULL;
$newmail = !empty($_POST['newmail']) ? $_POST['newmail'] : NULL;
$newmdp1 = !empty($_POST['newmdp1']) ? $_POST['newmdp1'] : NULL;
$newmdp2 = !empty($_POST['newmdp2']) ? $_POST['newmdp2'] : NULL;
$avatar = !empty($_FILES['avatar']) ? $_FILES['avatar'] : NULL;

//----------------------------
//début du traitement
//----------------------------

//si l'utilisateur n'est pas connecté :
if(!$id){
 header("Location: connexion.php");
 exit;
}
 
//on récupère les infos de l'utilisateur :
$user = getMembreById($id);

if(empty($user)){
  //utilisateur inconnu...
  header("Location: connexion.php");
  exit;
}

if($newpseudo != $user['pseudo']) {
  updatePseudo($id,$newpseudo);
  header('Location: profil.php?id='.$id);
  exit; //toujours mettre un exit apres une redirection
}

if($newmail != $user['mail']) {
  updateMail($newmail,$id);
  header('Location: profil.php?id='.$id);
  exit;
}
  
if($newmdp1 && $newmdp2)  {
  $mdp1 = sha1($newmdp1); // la methode SHA n'est plus sécurisée, renseigne toi sur la fonction password_hash
  $mdp2 = sha1($newmdp2);
  if($mdp1 == $mdp2) {
     updateMotdepasse($id,$mdp1);
     header('Location: profil.php?id='.$id);
     exit;
  } else {
     $msg = "Vos deux mdp ne correspondent pas !";
  }
}

if($avatar){
  $tailleMax = 2097152;
  $extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
  if($avatar['size'] <= $tailleMax) {

    $extensionUpload = strtolower(substr(strrchr($avatar['name'], '.'), 1));
    if(in_array($extensionUpload, $extensionsValides)) {
       $dirUpload = "membres/avatars/";
       
      if (is_writable($dirUpload)) {
        $avatarName = $id.".".$extensionUpload;
        $chemin = $dirUpload.$avatarName;
        if( move_uploaded_file($avatar['tmp_name'], $chemin)) {
          updateAvatar($id,$avatarName);
          header('Location: profil.php?id='.$id);
          exit;
        } else {
          $msg = "Erreur durant l'importation de votre photo de profil";
        }
      } else {
          $msg = 'Le dossier '.$dirUpload.' n\'est pas accessible en écriture !';
      } 
    } else {
       $msg = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
    }
  } else {
    $msg = "Votre photo de profil ne doit pas dépasser 2Mo";
  }
}
?>
<html>
   <head>
      <title>TUTO PHP</title>
      <meta charset="utf-8">
   </head>
   <body>
      <div align="center">
         <h2>Edition de mon profil</h2>
         <div align="left">
            <form method="POST" action="" enctype="multipart/form-data">
               <label>Pseudo :</label>
               <input type="text" name="newpseudo" placeholder="Pseudo" value="<?php echo $user['pseudo']; ?>" /><br /><br />
               <label>Mail :</label>
               <input type="text" name="newmail" placeholder="Mail" value="<?php echo $user['mail']; ?>" /><br /><br />
               <label>Mot de passe :</label>
               <input type="password" name="newmdp1" placeholder="Mot de passe"/><br /><br />
               <label>Confirmation - mot de passe :</label>
               <input type="password" name="newmdp2" placeholder="Confirmation du mot de passe" /><br /><br />
               <label>Avatar :</label>
               <input type="file" name="Avatar"/><br /><br />
               <input type="submit" value="Mettre à jour mon profil !" />


            </form>
            <?php if(isset($msg)) { echo $msg; } ?>
         </div>
      </div>
   </body>
</html>


Cordialement,
Jordane
Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020

Parse error: syntax error, unexpected ')' in C:\xampp\htdocs\editionprofil.php on line 118
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862 >
Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020

tu sais que tu pourrais corriger par toi même..... le message est clair.
Et en effet, à a ligne 118, il y a une parenthèse en trop ( j'ai édité mon code précédent pour le corriger )
Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020

suis désoler j'ai regarder mais j'avais pas remarquer
Notice: Undefined variable: bdd in C:\xampp\htdocs\editionprofil.php on line 30

Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\editionprofil.php:30 Stack trace: #0 C:\xampp\htdocs\editionprofil.php(45): db_Exec('SELECT * FROM m...', Array) #1 C:\xampp\htdocs\editionprofil.php(98): getMembreById('2') #2 {main} thrown in C:\xampp\htdocs\editionprofil.php on line 30


je pense que vais essayer de crée un fichier php a part pour l'avatar puis l'inclure sur profil.php

es c'est une bonne idée???
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862
Oh purée.. je n'étais pas bien réveillé quand j'ai écrit le code...
Faut ajouter la variable $bdd en global dans la fonction db_Exec

  function db_Exec($sql,$datas=NULL){
    global $bdd;
    try{
      $prep = $bdd->prepare($sql);
      return $prep->execute($datas);
    }catch(Exception $e){
      echo " Erreur ! ".$e->getMessage();
      echo " Les datas : " ;
      print_r($datas);
      exit;
    }
  }
Messages postés
57
Date d'inscription
vendredi 12 juin 2020
Statut
Membre
Dernière intervention
20 octobre 2020

lol je comprend

Fatal error: Uncaught Error: Call to a member function fetch() on boolean in C:\xampp\htdocs\editionprofil.php:46 Stack trace: #0 C:\xampp\htdocs\editionprofil.php(98): getMembreById('2') #1 {main} thrown in C:\xampp\htdocs\editionprofil.php on line 46
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862
Désolé...
 function db_Exec($sql,$datas=NULL){
    global $bdd;
    try{
      $prep = $bdd->prepare($sql);
      $prep->execute($datas);
      return $prep;
    }catch(Exception $e){
      echo " Erreur ! ".$e->getMessage();
      echo " Les datas : " ;
      print_r($datas);
      exit;
    }
  }