Problème code php !

Fermé
FlorianJ29 Messages postés 68 Date d'inscription dimanche 22 janvier 2017 Statut Membre Dernière intervention 28 février 2019 - 30 janv. 2017 à 13:24
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 31 janv. 2017 à 20:07
Bonjour, j'ai un problème sur une de mes pages php, alors qu'il ne me semble pas l'avoir modifier ! Peu de temps avant, j'avais fait une copie de mes scripts, donc j'ai recopier le code php dans ma page où se trouve le problème et ça fait exactement pareil !
Je ne comprends pas pourquoi il y a ce problème...

Je vous explique qu'est ce que ça doit faire en temps normal :

J'ai fait un système d'inscription, de connexion et de modification de profil, et la page dont je vous parle depuis tout à l'heure, est la page de modification de profil. Quand je clique sur le bouton "Mettre à jour mon profil" ce code doit s’exécuter :

if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name'])) {
$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/";


if(!is_dir($chemin) || !is_writable($chemin)){
echo "<br>Erreur: <br>Le chemin << $chemin >> n'existe pas ou ne dispose pas des droits necessaires";
}else{
$fileToMove = !empty($_FILES['avatar']['tmp_name']) ? $_FILES['avatar']['tmp_name'] : NULL;
if($fileToMove){
$resultat = move_uploaded_file($fileToMove, $chemin.$_SESSION['id'].".".$extensionUpload);
}else{
echo "<br> Erreur, aucun fichier à déplacer !";
}
}
if($resultat) {
$updateavatar = $bdd->prepare('UPDATE liste_clients SET avatar = :avatar WHERE id = :id');
$updateavatar->execute(array(
'avatar' => $_SESSION['id'].".".$extensionUpload,
'id' => $_SESSION['id']
));
header('Location: profil2.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";
}
}


Donc normalement il vérifie l’extension et la taille du fichier !!! Mais là, il vérifie rien du tout et en plus de ça, ça ne marche pas ! (modifier le pseudo, l'email ou le mot de passe fonctionne mais modifier la photo de profil ne fonctionne pas).

Merci d'avance, cordialement
FlorianJ29
A voir également:

2 réponses

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 30/01/2017 à 19:21
Bonjour,

Commence par mettre en commentaire les redirections histoire de pouvoir lire les éventuels messages d'erreur...

Active la gestion des erreurs PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

Active l'affichage des erreurs PHP :
error_reporting(E_ALL);
ini_set('display-errors','on');


Place des ECHO dans tes différents IF .. pour savoir si ton code rentre dedans.


et une fois tout ça terminé... reviens nous voir si tu n'a toujours pas trouvé ton souci/
Cordialement, 
Jordane                                                                 
1
FlorianJ29 Messages postés 68 Date d'inscription dimanche 22 janvier 2017 Statut Membre Dernière intervention 28 février 2019 14
30 janv. 2017 à 18:38
J'ai essayé ce code :

<?php
try{
$bdd = new PDO('mysql:host=localhost;dbname=u699215262_flo', 'u699215262_flo29', 'Bjiwpw4OkANM');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch(PDOException $e) {
die('Erreur : ' . $e->getMessage());
}
session_start();

$bdd = new PDO('mysql:host=localhost;dbname=u699215262_flo', 'u699215262_flo29', 'Bjiwpw4OkANM');

....
if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name'])) {
echo "1";
$tailleMax = 2097152;
$extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
if($_FILES['avatar']['size'] <= $tailleMax) {
echo "2";
$extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
if(in_array($extensionUpload, $extensionsValides)) {
echo "3";
$chemin = "membres/avatars/";


if(!is_dir($chemin) || !is_writable($chemin)){
echo "4";
echo "<br>Erreur: <br>Le chemin << $chemin >> n'existe pas ou ne dispose pas des droits necessaires";
}else{
$fileToMove = !empty($_FILES['avatar']['tmp_name']) ? $_FILES['avatar']['tmp_name'] : NULL;
if($fileToMove){
echo "5";
$resultat = move_uploaded_file($fileToMove, $chemin.$_SESSION['id'].".".$extensionUpload);
}else{
echo "<br> Erreur, aucun fichier à déplacer !";
}
}
if($resultat) {
echo "6";
$updateavatar = $bdd->prepare('UPDATE liste_clients SET avatar = :avatar WHERE id = :id');
$updateavatar->execute(array(
'avatar' => $_SESSION['id'].".".$extensionUpload,
'id' => $_SESSION['id']
));
header('Location: profil2.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";
}
}
?>


Quand je mets le :

error_reporting(E_ALL);
ini_set('display-errors'),'on');


Il y a une erreur de syntaxe !

Du coup le problème est encore là ! ça ne marche pas et ca n'affiche aucun numéro...

Merci, cordialement
FlorianJ29
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > FlorianJ29 Messages postés 68 Date d'inscription dimanche 22 janvier 2017 Statut Membre Dernière intervention 28 février 2019
30 janv. 2017 à 19:22
Il y a une parenthese en trop
Ini_set ('display-errors','on');
0
FlorianJ29 Messages postés 68 Date d'inscription dimanche 22 janvier 2017 Statut Membre Dernière intervention 28 février 2019 14
30 janv. 2017 à 19:45
Ah oui, je n'ai même pas vérifié ! J'essayerai ça toute à l'heure. Merci de votre aide.

Cordialement,
FlorianJ29
0
FlorianJ29 Messages postés 68 Date d'inscription dimanche 22 janvier 2017 Statut Membre Dernière intervention 28 février 2019 14
30 janv. 2017 à 20:04
Toujours la même chose !

Avec ce code :
<?php
error_reporting(E_ALL);
ini_set('display-errors','on');
try{
$bdd = new PDO('mysql:host=localhost;dbname=u699215262_flo', 'u699215262_flo29', 'Bjiwpw4OkANM');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch(PDOException $e) {
die('Erreur : ' . $e->getMessage());
}
session_start();

$bdd = new PDO('mysql:host=localhost;dbname=u699215262_flo', 'u699215262_flo29', 'Bjiwpw4OkANM');
...
if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name'])) {
echo "1";
$tailleMax = 2097152;
$extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
if($_FILES['avatar']['size'] <= $tailleMax) {
echo "2";
$extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
if(in_array($extensionUpload, $extensionsValides)) {
echo "3";
$chemin = "membres/avatars/";


if(!is_dir($chemin) || !is_writable($chemin)){
echo "4";
echo "<br>Erreur: <br>Le chemin << $chemin >> n'existe pas ou ne dispose pas des droits necessaires";
}else{
$fileToMove = !empty($_FILES['avatar']['tmp_name']) ? $_FILES['avatar']['tmp_name'] : NULL;
if($fileToMove){
echo "5";
$resultat = move_uploaded_file($fileToMove, $chemin.$_SESSION['id'].".".$extensionUpload);
}else{
echo "<br> Erreur, aucun fichier à déplacer !";
}
}
if($resultat) {
echo "6";
$updateavatar = $bdd->prepare('UPDATE liste_clients SET avatar = :avatar WHERE id = :id');
$updateavatar->execute(array(
'avatar' => $_SESSION['id'].".".$extensionUpload,
'id' => $_SESSION['id']
));
header('Location: profil2.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";
}
}
?>


Cordialement,
FlorianJ29
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > FlorianJ29 Messages postés 68 Date d'inscription dimanche 22 janvier 2017 Statut Membre Dernière intervention 28 février 2019
30 janv. 2017 à 20:45
Tu as deux bdd = new...
Tu n'as pas mis les try/catch au niveau de la requete...
Tu ne nous dis pas le comportement ou les messages d'erreur rencontrés. ..
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
31 janv. 2017 à 00:39
Bon...;

J'ai remanié ton code ...
corrigé quelques erreurs ...
Découpé en fonctions ....

Bref.. voici :

Déjà .. on sépare la connexion du reste du code
<?php
// fichier de connexion à la bdd : cnxBdd.php
function get_cnx(){
 $bdd = NULL;
 try{
  $bdd = new PDO('mysql:host=localhost;dbname=u699215262_flo', 'u699215262_flo29', 'Bjiwpw4OkANM');
  $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());
 }
 return $bdd;
}

// + Fonction de requete ...
function queryExec($sql,$a_datas=NULL){
 $bdd = get_cnx();
  //Execution de la requete
  try{
    $requete = $bdd -> prepare($sql) ;
    $requete->execute($a_datas) ;
  }catch(Exception $e){
    // en cas d'erreur :
     echo " Erreur ! ".$e->getMessage();
     echo " Les datas : " ;
     print_r($a_datas);
  }
 return !empty($requete) ? $requete : NULL;
}
?>

Il suffirat ensuite de l'inclure dans les pages dans lesquelles tu en as besoin....

Ensuite, le reste de ton code :
<?php
// Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display-errors','on');

//démarrage des sessions
session_start();

//Fichier de fonction pour la connexion à la bdd + l'execution de requetes:
require_once "cnxBdd.php";

include_once('cookieconnect2.php');

//Récupération PROPRE des variables AVANT de les utiliser
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$newpseudo = !empty($_POST['newpseudo']) ? $_POST['newpseudo'] : NULL;
$newemail = !empty($_POST['newemail']) ? $_POST['newemail'] : NULL;
$newmdp1 = !empty($_POST['newmdp1']) ? sha1($_POST['newmdp1']) : NULL;
$newmdp2 = !empty($_POST['newmdp2']) ? sha1($_POST['newmdp2']) : NULL;
$avatar = !empty($_FILES['avatar']) ? $_FILES['avatar'] : NULL;


function get_clients_by_id($id){
 $sql = "SELECT * 
         FROM liste_clients 
         WHERE id = :id";
 $a_datas = array(":id"=>$id);
 $result = queryExec($sql,$a_datas);
 return !empty($result) ? $result->fetch() : NULL;
}

function update_pseudo($pseudo,$id){
 $sql = "UPDATE liste_clients SET email = :pseudo WHERE id = :id" ;
 $a_datas = array(":id"=>$id,":pseudo"=>$pseudo);
 $result = queryExec($sql,$a_datas);
 return !empty($result) ? $result : NULL;
}

function update_email($newemail,$id){
 $sql = "UPDATE liste_clients SET email = :email WHERE id = :id" ;
 $a_datas = array(":id"=>$id,":email"=>$newemail);
 $result = queryExec($sql,$a_datas);
 return !empty($result) ? $result : NULL;
}

function update_pass($newmdp1,$id){
 $sql = "UPDATE liste_clients SET passe = :newmdp1 WHERE id = :id" ;
 $a_datas = array(":id"=>$id,":newmdp1"=>$newmdp1);
 $result = queryExec($sql,$a_datas);
 return !empty($result) ? $result : NULL;
}

function update_avatar($fle_avatar,$id){
 $sql = "UPDATE liste_clients SET avatar = :avatar WHERE id = :id" ;
 $a_datas = array(":id"=>$id,":avatar"=>$fle_avatar);
 $result = queryExec($sql,$a_datas);
 return !empty($result) ? $result : NULL;
}


$error = array(); // array contenant les éventuelles erreurs ...

if($id) {
  $user = get_clients_by_id($id);
  if($newpseudo && $newpseudo != $user['pseudo']) {
    $insertpseudo = update_pseudo($newpseudo,$id); 
  }

  if($newemail != $user['email']) {
      $insertemail = update_email($newemail,$id); 
  }
  
  
   if($newmdp1 && $newmdp2) {
      if($newmdp1 == $newmdp2) {
         $insertmdp =update_pass($newmdp1,$id);
      } else {
         $error[] = "Vos deux mdp ne correspondent pas !";
      }
   }

   
   
  if($avatar){
    $chemin = "membres/avatars/";
    $file_name = !empty($avatar['name']) ? $avatar['name'] : NULL;
    $file_size = !empty($avatar['size']) ? $avatar['size'] : NULL;
    if($file_name && $file_size <= $tailleMax){
     $tailleMax = 2097152;
     $extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
     $extensionUpload = strtolower(substr(strrchr($file_name, '.'), 1));
    if(in_array($extensionUpload, $extensionsValides)) {
       if(!is_dir($chemin) || !is_writable($chemin)){
          $error[] = "<br>Erreur: <br>Le chemin << $chemin >> n'existe pas ou ne dispose pas des droits necessaires";
       }else{
        $fileToMove = !empty($avatar['tmp_name']) ? $avatar['tmp_name'] : NULL;
        if($fileToMove){
          $resultat = move_uploaded_file($fileToMove, $chemin.$id.".".$extensionUpload);
        }else{
          $error[] = "<br> Erreur, aucun fichier à déplacer !";
        }
       }
       if($resultat) {
        $updateavatar = update_avatar($chemin.$id.".".$extensionUpload , $id);
         
       } else {
          $error[] = "Erreur durant l'importation de votre photo de profil";
       }
    } else {
         $error[] = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
    }
   } else {
     $error[] = "Votre photo de profil ne doit pas dépasser 2Mo";
   }
  }

  if(!empty($error)){
   foreach($error as $err){
    echo "<br>".$err;
   }
  }else{
   // si pas d'erreur..
   header("Location: profil2.php?id=$id");
  }

} else {
  echo " No id in SESSION ...";
}
?>

0
FlorianJ29 Messages postés 68 Date d'inscription dimanche 22 janvier 2017 Statut Membre Dernière intervention 28 février 2019 14
31 janv. 2017 à 13:51
J'ai mis ton code en place, ça à l'air beaucoup mieux !
Mais quand j'ai voulu essayé, je n'ai même pas pu voir la page de connexion de j'ai déjà eu une erreur dans la page "cookieconnect.php".

Code (cookieconect.php) :
<?php
if(!isset($_SESSION['id']) AND isset($_COOKIE['email'], $_COOKIE['passe']) AND !empty($_COOKIE['email'] AND !empty($_COOKIE['passe'])))
{
$requser = $bdd->prepare("SELECT * FROM liste_clients WHERE email = ? AND passe = ?");
$requser->execute(array($_COOKIE['email'], $_COOKIE['passe']));
$userexist = $requser->rowCount();
if($userexist == 1)
{
$userinfo = $requser->fetch();
$_SESSION['id'] = $userinfo['id'];
$_SESSION['pseudo'] = $userinfo['pseudo'];
$_SESSION['email'] = $userinfo['email'];
}
}
?>

Et l'erreur est :

Notice: Undefined variable: bdd in /home/u699215262/public_html/cookieconnect.php on line 4

Fatal error: Call to a member function prepare() on a non-object in /home/u699215262/public_html/cookieconnect.php on line 4


Pourquoi sans touché a cette page, il peux y avoir une erreur ????

Merci
Cordialement,
FlorianJ29
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > FlorianJ29 Messages postés 68 Date d'inscription dimanche 22 janvier 2017 Statut Membre Dernière intervention 28 février 2019
31 janv. 2017 à 20:07
Aucune erreur ...
Comme je te l'ai indiqué .. j'ai modifié le code de ton fichier de connexion.
Désormais .. pour faire une requête tu dois utiliser directement la fonction queryExec()

<?php

$session_id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$cookie_email = !empty($_COOKIE['email']) ? $_COOKIE['email'] : NULL;
$cookie_passe = !empty($_COOKIE['passe']) ? $_COOKIE['passe'] : NULL;


if($session_id && $cookie_email && $cookie_passe){
  $sql = "SELECT * 
          FROM liste_clients 
          WHERE email = :email 
          AND passe = :passe";
    $a_datas = array(":email"=>$cookie_email, ":passe"=>$cookie_passe);
    $req = queryExec($sql,$a_datas);
    $result = $req->fetchAll();
    $userexist = !empty($result ) ? count($result) : 0;
     if( $userexist == 1)	{
	 $_SESSION['id'] = $result['id']; // Pourquoi faire vu que tu testes déjà que la variable $_SESSION['id'] existe avant d'arriver ici....
	  $_SESSION['pseudo'] = $result['pseudo'];
	  $_SESSION['email'] = $result['email'];
	}
}
?>


Par contre... à quoi sert ce code vu que pour entrer dans le IF il faut déjà que la variable $_SESSION['id'] existe et soit renseignée ....
Aucun interret !!!
Je ne comprend vraiment pas ce que vient faire là le fichier cookieconnect2.php ....
Au passage tu verras que j'ai supprimé le ROWCOUNT car (comme déjà dit il me semble .... ) il ne FAUT PAS utiliser cette fonction mais plutôt faire un COUNT comme je l'ai fait !


Quoi qu'il en soit, pour respecter la même forme que le code que je t'ai donné précédement .. tu peux créer une fonction qui retourne les infos du user
et ensuite l'utiliser dans ton code.

$email = !empty($_COOKIE['email']) ? $_COOKIE['email'] : NULL;
$passe = !empty($_COOKIE['passe']) ? $_COOKIE['passe'] : NULL;

function get_infos_user_by_passe_and_email($email,$passe){
  $sql = "SELECT * 
          FROM liste_clients 
          WHERE email = :email 
          AND passe = :passe";
  $a_datas = array(":email"=>$email, ":passe"=>$passe);
  $req = queryExec($sql,$a_datas);
	$result = $req->fetchAll();
  return !empty($result) ? $result : NULL;
}

if($email && $passe){
  
	$result = get_infos_user_by_passe_and_email($email,$passe );
  $userexist = !empty($result ) ? count($result) : 0;
	if( $userexist == 1)	{
	  $_SESSION['id'] = $result['id'];
		$_SESSION['pseudo'] = $result['pseudo'];
		$_SESSION['email'] = $result['email'];
	}
}


Par contre, .. pourquoi passer par les "cookies" ? Ne serait-ce pas plutôt lorsque l'utilisateur se connecte via un formulaire et donc des variables $_POST ???



Pour finir, en reprenant l'intégralité de ton code, tu pourrais le structurer ainsi :

- Le fichier de connexion à la BDD + la fonction de requête

- Un fichier contenant les différentes fonctions necessaires pour ton user (client)

- Ton fichier de traitement faisant appel aux deux fichiers précédents.

Ce qui donnerait un truc du genre :



Fichier de connexion à la bdd
<?php
// fichier de connexion à la bdd : cnxBdd.php
function get_cnx(){
 $bdd = NULL;
 try{
  $bdd = new PDO('mysql:host=localhost;dbname=u699215262_flo', 'u699215262_flo29', 'Bjiwpw4OkANM');
  $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());
 }
 return $bdd;
}

// + Fonction de requete ...
function queryExec($sql,$a_datas=NULL){
 $bdd = get_cnx();
  //Execution de la requete
  try{
    $requete = $bdd -> prepare($sql) ;
    $requete->execute($a_datas) ;
  }catch(Exception $e){
    // en cas d'erreur :
     echo " Erreur ! ".$e->getMessage();
     echo " Les datas : " ;
     print_r($a_datas);
  }
 return !empty($requete) ? $requete : NULL;
}
?>
?>


Fichier contenant les fonctions
<?php
// Fichier contenant les fonctions pour le user
//  clients.func.php
// on aurait même pu en faire une class.. mais bon...

function get_clients_by_id($id){
 $sql = "SELECT * 
         FROM liste_clients 
         WHERE id = :id";
 $a_datas = array(":id"=>$id);
 $result = queryExec($sql,$a_datas);
 return !empty($result) ? $result->fetch() : NULL;
}

function update_pseudo($pseudo,$id){
 $sql = "UPDATE liste_clients SET email = :pseudo WHERE id = :id" ;
 $a_datas = array(":id"=>$id,":pseudo"=>$pseudo);
 $result = queryExec($sql,$a_datas);
 return !empty($result) ? $result : NULL;
}

function update_email($newemail,$id){
 $sql = "UPDATE liste_clients SET email = :email WHERE id = :id" ;
 $a_datas = array(":id"=>$id,":email"=>$newemail);
 $result = queryExec($sql,$a_datas);
 return !empty($result) ? $result : NULL;
}

function update_pass($newmdp1,$id){
 $sql = "UPDATE liste_clients SET passe = :newmdp1 WHERE id = :id" ;
 $a_datas = array(":id"=>$id,":newmdp1"=>$newmdp1);
 $result = queryExec($sql,$a_datas);
 return !empty($result) ? $result : NULL;
}

function update_avatar($fle_avatar,$id){
 $sql = "UPDATE liste_clients SET avatar = :avatar WHERE id = :id" ;
 $a_datas = array(":id"=>$id,":avatar"=>$fle_avatar);
 $result = queryExec($sql,$a_datas);
 return !empty($result) ? $result : NULL;
}

function get_infos_user_by_passe_and_email($email,$passe){
  $sql = "SELECT * 
          FROM liste_clients 
          WHERE email = :email 
          AND passe = :passe";
  $a_datas = array(":email"=>$email, ":passe"=>$passe);
  $req = queryExec($sql,$a_datas);
	$result = $req->fetchAll();
  return !empty($result) ? $result : NULL;
}

?>


Ton fichier de traitement ...

<?php
// Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display-errors','on');

//xn--dmarrage-b1a des sessions
session_start();

//Fichier de fonction pour la connexion à la bdd + l'execution de requetes:
require_once "cnxBdd.php";

// Fichier de fonctions du client (user)
require_once "clients.func.php";


//-----------------------------------//_// Ancien fichier cookie...
$email = !empty($_COOKIE['email']) ? $_COOKIE['email'] : NULL;
$passe = !empty($_COOKIE['passe']) ? $_COOKIE['passe'] : NULL;

if($email && $passe){
	$result = get_infos_user_by_passe_and_email($email,$passe );
  $userexist = !empty($result ) ? count($result) : 0;
	if( $userexist == 1)	{
	  $_SESSION['id'] = $result['id'];
		$_SESSION['pseudo'] = $result['pseudo'];
		$_SESSION['email'] = $result['email'];
	}
}
//-----------------------------------//__//Récupération PROPRE des variables AVANT de les utiliser
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$newpseudo = !empty($_POST['newpseudo']) ? $_POST['newpseudo'] : NULL;
$newemail = !empty($_POST['newemail']) ? $_POST['newemail'] : NULL;
$newmdp1 = !empty($_POST['newmdp1']) ? sha1($_POST['newmdp1']) : NULL;
$newmdp2 = !empty($_POST['newmdp2']) ? sha1($_POST['newmdp2']) : NULL;
$avatar = !empty($_FILES['avatar']) ? $_FILES['avatar'] : NULL;

$error = array(); // array contenant les éventuelles erreurs ...

if($id) {
  $user = get_clients_by_id($id);
  if($newpseudo && $newpseudo != $user['pseudo']) {
    $insertpseudo = update_pseudo($newpseudo,$id); 
  }

  if($newemail != $user['email']) {
      $insertemail = update_email($newemail,$id); 
  }


  if($newmdp1 && $newmdp2) {
    if($newmdp1 == $newmdp2) {
       $insertmdp =update_pass($newmdp1,$id);
    } else {
       $error[] = "Vos deux mdp ne correspondent pas !";
    }
  }

  if($avatar){
    $chemin = "membres/avatars/";
    $file_name = !empty($avatar['name']) ? $avatar['name'] : NULL;
    $file_size = !empty($avatar['size']) ? $avatar['size'] : NULL;
    if($file_name && $file_size <= $tailleMax){
     $tailleMax = 2097152;
     $extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
     $extensionUpload = strtolower(substr(strrchr($file_name, '.'), 1));
     if(in_array($extensionUpload, $extensionsValides)) {
       if(!is_dir($chemin) || !is_writable($chemin)){
          $error[] = "<br>Erreur: <br>Le chemin << $chemin >> n'existe pas ou ne dispose pas des droits necessaires";
       }else{
        $fileToMove = !empty($avatar['tmp_name']) ? $avatar['tmp_name'] : NULL;
        if($fileToMove){
          $resultat = move_uploaded_file($fileToMove, $chemin.$id.".".$extensionUpload);
        }else{
          $error[] = "<br> Erreur, aucun fichier à déplacer !";
        }
       }
       if($resultat) {
        $updateavatar = update_avatar($chemin.$id.".".$extensionUpload , $id);
         
       } else {
          $error[] = "Erreur durant l'importation de votre photo de profil";
       }
    } else {
         $error[] = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
    }
   } else {
     $error[] = "Votre photo de profil ne doit pas dépasser 2Mo";
   }
  }

  if(!empty($error)){
   foreach($error as $err){
    echo "<br>".$err;
   }
  }else{
   // si pas d'erreur..
   header("Location: profil2.php?id=$id");
  }

} else {
  echo " No id in SESSION ...";
}
?>
0