Uploald un avatar

Résolu/Fermé
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 - Modifié le 13 juil. 2020 à 19:15
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 15 juil. 2020 à 15:43
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

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
13 juil. 2020 à 19:16
Bonjour

Commence par appliquer le contenu de
Ce lien https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

puis montre-nous ton code modifié et indique nous l'éventuel message d'erreur
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
Modifié le 13 juil. 2020 à 22:27
 
<?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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
13 juil. 2020 à 22:28
Il manque les try/catch. ... Et le message d'erreur...
--
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
14 juil. 2020 à 11:10
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 :
https://forums.commentcamarche.net/forum/affich-37584947-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.




0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
14 juil. 2020 à 18:48
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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
14 juil. 2020 à 20:29
Ligne 107, j'ai oublié un point-virgule
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
15 juil. 2020 à 00:18
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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
15 juil. 2020 à 07:37
Arf....
$user = $getMembmreById($id);

A corriger en

$user = getMembmreById($id);
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
Modifié le 15 juil. 2020 à 12:50
    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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié le 15 juil. 2020 à 14:56
<?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>


0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
Modifié le 15 juil. 2020 à 14:57
Parse error: syntax error, unexpected ')' in C:\xampp\htdocs\editionprofil.php on line 118
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
15 juil. 2020 à 14:57
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 )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
15 juil. 2020 à 15:07
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???
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
15 juil. 2020 à 15:09
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;
    }
  }
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
15 juil. 2020 à 15:18
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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
15 juil. 2020 à 15:43
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;
    }
  }
0