Page 1 sur 1

Modification d'un profil

Posté : 14 juin 2013, 15:38
par reverb
Bonjour à tous,
Je créer actuellement un espace permettant de modifier le profil d'un membre inscrit.
Mais lorsque l'on effectue l'action de modifier son profil, tout le formulaire disparaît sans indication d'erreur ou de mauvais email etc... et surtout aucune modification ne se produit ^^'.

j'ai relu mon code à plusieurs reprise pour repérer l'erreur que j'aurais pu faire ou un oublie, mais rien ne me 'saute à l’œil' :/.

Voici mon code de modification profil :
//un switch englobe également la premiere partie de code qui consiste à afficher les informations du membre 
<?php
//Si on choisit de modifier son profil
    case "modifier":
    if (empty($_POST['sent'])) // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire
    {
        //On commence par s'assurer que le membre est connecté
        if(isset ($_SESSION['membre_id']))
       {
        define('ERR_IS_NOT_CO','Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
        define('error','Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
        $id=(isset($_SESSION['membre_id']))?(int)$_SESSION['membre_id']:0;
        if ($id==0) error(ERR_IS_NOT_CO);
  
        //On prend les infos du membre
        $query=$bdd->prepare('SELECT membre_pseudo, membre_mail, membre_siteweb, membre_signature, membre_msn, membre_yahoo, membre_facebook, membre_tumblr, membre_twitter, membre_fotolog, membre_pinterest, membre_googleplus, membre_flickr, membre_nom, membre_prenom, membre_localisation, membre_profession, membre_biographie, membre_avatar FROM membres WHERE membre_id=:id');
        $query->bindValue(':id',$id,PDO::PARAM_INT);
        $query->execute();
        $data=$query->fetch();
echo '<div id="infosmembre">';
echo '<p class="textesimple">'."Consulter votre : ".'<a href="voirprofil.php?action=consulter">'."Profil".'</a>';
        echo '<h1>Modifier son profil</h1>';
  echo '</div>';  
  
       echo '<div id="infosmembre">';
        echo '<form method="post" action="voirprofil.php?action=modifier" enctype="multipart/form-data">
  
        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Identifiants</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr">Pseudo : <strong>'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</strong></p></div>    
          <div id="cadrepseu"><p class="classinscr"><label for="password">Nouveau mot de Passe :</label>
        <input type="password" name="password" id="password" /></p></div>
        <div id="cadrepseu"><p class="classinscr"><label for="confirm">Confirmer le mot de passe :</label>
        <input type="password" name="confirm" id="confirm"  /></p></div>
        </fieldset>
  
        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Contacts</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="email">Votre adresse E_Mail :</label>
        <input type="text" name="email" id="email"
        value="'.stripslashes($data['membre_mail']).'" /></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="msn">Votre adresse MSN :</label>
        <input type="text" name="msn" id="msn"
        value="'.stripslashes($data['membre_msn']).'" /></p></div>
  
         <div id="cadrepseu"><p class="classinscr"><label for="yahoo">Votre adresse Yahoo :</label>
        <input type="text" name="yahoo" id="yahoo"
        value="'.stripslashes($data['membre_yahoo']).'" /></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="facebook">Votre adresse Facebook :</label>
        <input type="text" name="facebook" id="facebook"
        value="'.stripslashes($data['membre_facebook']).'" /></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="tumblr">Votre adresse Tumblr :</label>
        <input type="text" name="tumblr" id="tumblr"
        value="'.stripslashes($data['membre_tumblr']).'" /></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="twitter">Votre adresse Twitter :</label>
        <input type="text" name="twitter" id="twitter"
        value="'.stripslashes($data['membre_twitter']).'" /></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="pinterest">Votre adresse Pinterest :</label>
        <input type="text" name="pinterest" id="pinterest"
        value="'.stripslashes($data['membre_twitter']).'" /></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="fotolog">Votre adresse Fotolog :</label>
        <input type="text" name="fotolog" id="fotolog"
        value="'.stripslashes($data['membre_fotolog']).'" /></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="googleplus">Votre adresse Googleplus :</label>
        <input type="text" name="googleplus" id="googleplus"
        value="'.stripslashes($data['membre_googleplus']).'" /></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="flickr">Votre adresse Flickr :</label>
        <input type="text" name="flickr" id="flickr"
        value="'.stripslashes($data['membre_flickr']).'" /></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="website">Votre site web :</label>
        <input type="text" name="website" id="website"
        value="'.stripslashes($data['membre_siteweb']).'" /></p></div>
        </fieldset>
  
        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Informations supplémentaires</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="localisation">Localisation :</label>
        <input type="text" name="localisation" id="localisation"
        value="'.stripslashes($data['membre_localisation']).'" /></p></div>
        </fieldset>
  
        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Profil sur le forum</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="avatar">Changer votre avatar :</label>
        <input type="file" name="avatar" id="avatar" />
        (Taille max : 10 Mo)<br /><br />
        <label><input type="checkbox" name="delete" value="Delete" />
        Supprimer l avatar</label>
        Avatar actuel :
        <img src="./images/avatars/'.$data['membre_avatar'].'"
        alt="pas d avatar" /></p></div>
  
         <div id="cadrepseu"><p class="classinscr"><label for="signature">Signature :</label>
        <textarea cols="40" rows="4" name="signature" id="signature">
        '.stripslashes($data['membre_signature']).'</textarea></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="profession">Profession :</label>
        <textarea cols="40" rows="4" name="profession" id="profession">
        '.stripslashes($data['membre_profession']).'</textarea></p></div>
  
        <div id="cadrepseu"><p class="classinscr"><label for="biographie">Biographie :</label>
        <textarea cols="40" rows="4" name="biographie" id="biographie">
        '.stripslashes($data['membre_biographie']).'</textarea></p></div>
  
        </fieldset>
        <p class="classinscr"><input type="submit" value="Modifier son profil" />
        <input type="hidden" id="sent" name="sent" value="1" />
        </p></form>';
  
        echo '</div>';
  
        $query->CloseCursor();  
  
       }
       else
       {
           echo '<p class="texteerror">'."Vous n'avez pas accès à cette page.".'</p>';
           echo '<p class="textewarning">'."Vous devez être connecté pour accèder à cette page.".'</p>';
       }
    }  
    else //Cas du traitement
    {
     //On déclare les variables 
    $mdp_erreur = NULL;
    $email_erreur1 = NULL;
    $email_erreur2 = NULL;
    $yahoo_erreur = NULL;
    $msn_erreur = NULL;
    $signature_erreur = NULL;
    $avatar_erreur = NULL;
    $avatar_erreur1 = NULL;
    $avatar_erreur2 = NULL;
    $avatar_erreur3 = NULL;
  
    //Encore et toujours notre belle variable $i :p
    $i=0;
    $temps=time(); 
    $signature=$_POST['membre_signature'];
    $email=$_POST['membre_mail'];
    $msn=$_POST['membre_msn'];
    $yahoo=$_POST['membre_yahoo'];
    $facebook=$_POST['membre_facebook'];
    $tumblr=$_POST['membre_tumblr'];
    $twitter=$_POST['membre_twitter'];
    $pinterest=$_POST['membre_pinterest'];
    $fotolog=$_POST['membre_fotolog'];
    $googleplus=$_POST['membre_googleplus'];
    $flickr=$_POST['membre_flickr'];
    $website=$_POST['membre_website'];
    $profession=$_POST['membre_profession'];
    $biographie=$_POST['membre_biographie'];
    $localisation=$_POST['membre_localisation'];
    $pass=($_POST['membre_mdp']);
    $confirm=($_POST['confirm']);
  
  
    //Vérification du mdp
    if ($pass != $confirm || empty($confirm) || empty($pass))
    {
         $mdp_erreur = '<p class="texteerror">'."Votre mot de passe et votre confirmation diffèrent ou sont vides".'</p>';
         $i++;
    }
  
    //Vérification de l'adresse email
    //Il faut que l'adresse email n'ait jamais été utilisée (sauf si elle n'a pas été modifiée)
  
    //On commence donc par récupérer le mail
    $query=$bdd->prepare('SELECT membre_mail FROM membres WHERE membre_id =:id'); 
    $query->bindValue(':id',$id,PDO::PARAM_INT);
    $query->execute();
    $data=$query->fetch();
    if (strtolower($data['membre_mail']) != strtolower($email))
    {
        //Il faut que l'adresse email n'ait jamais été utilisée
        $query=$bdd->prepare('SELECT COUNT(*) AS nbr FROM membres WHERE membre_mail =:mail');
        $query->bindValue(':mail',$email,PDO::PARAM_STR);
        $query->execute();
        $mail_free=($query->fetchColumn()==0)?1:0;
        $query->CloseCursor();
        if(!$mail_free)
        {
            $email_erreur1 = '<p class="textewarning">'."Votre adresse email est déjà utilisé par un membre".'</p>';
            $i++;
        }
  
        //On vérifie la forme maintenant
        if (!preg_match("#^[a-z0-9A-Z._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
        {
            $email_erreur2 = '<p class="texteerror">'."Votre nouvelle adresse E-Mail n'a pas un format valide".'</p>';
            $i++;
        }
    }
    //Vérification de l'adresse MSN
    if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn))
    {
        $msn_erreur = '<p class="texteerror">'."Votre nouvelle adresse MSN n'a pas un format valide".'</p>';
        $i++;
    }
  
    if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $yahoo) && !empty($yahoo))
    {
        $yahoo_erreur = '<p class="texteerror">'."Votre nouvelle adresse Yahoo n'a pas un format valide".'</p>';
        $i++;
    }
  
    //Vérification de la signature
    if (strlen($signature) > 200)
    {
        $signature_erreur = '<p class="textewarning">'."Votre nouvelle signature est trop longue".'</p>';
        $i++;
    }
  
  
    //Vérification de l'avatar
  
    if (!empty($_FILES['membre_avatar']['size']))
    {
        //On définit les variables :
        $maxsize = 100000; //Poid de l'image
        $maxwidth = 100; //Largeur de l'image
        $maxheight = 100; //Longueur de l'image
        //Liste des extensions valides
        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' );
  
        if ($_FILES['membre_avatar']['error'] > 0)
        {
        $avatar_erreur = '<p class="texteerror">'."Erreur lors du tranfsert de l'avatar : ".'</p>';
        }
        if ($_FILES['membre_avatar']['size'] > $maxsize)
        {
        $i++;
        $avatar_erreur1 = "Le fichier est trop gros :
        (<strong>".$_FILES['membre_avatar']['size']." Octets</strong>
        contre <strong>".$maxsize." Octets</strong>)";
        }
  
        $image_sizes = getimagesize($_FILES['membre_avatar']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
        {
        $i++;
        $avatar_erreur2 = "Image trop large ou trop longue :
        (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre
        <strong>".$maxwidth."x".$maxheight."</strong>)";
        }
  
        $extension_upload = strtolower(substr(  strrchr($_FILES['membre_avatar']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {
                $i++;
                $avatar_erreur3 = '<p class="texteerror">'."Extension de l'avatar incorrecte".'</p>';
        }
    }
  
    }
    break;
  
default; //Si jamais c'est aucun de ceux-là c'est qu'il y a eu un problème :o
echo '<p class="texteerror">'."Cette action est impossible.".'</p>';
  
    echo '<h1>Modification d\'un profil</h1>';
  
  
    if ($i == 0) // Si $i est vide, il n'y a pas d'erreur
    {
        if (!empty($_FILES['membre_avatar']['size']))
        {
                $nomavatar=move_avatar($_FILES['membre_avatar']);
                $query=$bdd->prepare('UPDATE membres SET membre_avatar = :avatar WHERE membre_id = :id');
                $query->bindValue(':avatar',$nomavatar,PDO::PARAM_STR);
                $query->bindValue(':id',$id,PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
        }
  
        //Une nouveauté ici : on peut choisis de supprimer l'avatar
        if (isset($_POST['delete']))
        {
                $query=$bdd->prepare('UPDATE membres SET membre_avatar=0 WHERE membre_id = :id');
                $query->bindValue(':id',$id,PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
        }
  
        echo'<h1>Modification terminée</h1>';
        echo'<p>Votre profil a été modifié avec succès !</p>';
        echo'<p>Cliquez <a href="./index.php">ici</a> 
        pour revenir à la page d accueil</p>';
  
        //On modifie la table
  
        $query=$bdd->prepare('UPDATE membres
        SET  membre_mdp = :mdp, membre_email=:mail, membre_msn=:msn,  membre_yahoo=:yahoo, membre_facebook=:facebook, membre_tumblr=:tumblr,  membre_twitter=:twitter, membre_pinterest=:pinterest, membre_fotolog=:fotolog, membre_googleplus=:googleplus, membre_flickr=:flickr, membre_siteweb=:website, membre_signature=:signature, membre_localisation=:localisation, membre_profession=:profession, membre_biographie=:biographie, WHERE membre_id=:id');
        $query->bindValue(':mdp',$pass,PDO::PARAM_INT);
        $query->bindValue(':mail',$email,PDO::PARAM_STR);
        $query->bindValue(':msn',$msn,PDO::PARAM_STR);
        $query->bindValue(':yahoo',$yahoo,PDO::PARAM_STR);
        $query->bindValue(':facebook',$facebook,PDO::PARAM_STR);
        $query->bindValue(':tumblr',$tumblr,PDO::PARAM_STR);
        $query->bindValue(':twitter',$twitter,PDO::PARAM_STR);
        $query->bindValue(':fotolog',$fotolog,PDO::PARAM_STR);
        $query->bindValue(':pinterest',$pinterest,PDO::PARAM_STR);
        $query->bindValue(':googleplus',$googleplus,PDO::PARAM_STR);
        $query->bindValue(':flickr',$flickr,PDO::PARAM_STR);
        $query->bindValue(':website',$website,PDO::PARAM_STR);
        $query->bindValue(':signature',$signature,PDO::PARAM_STR);
        $query->bindValue(':localisation',$localisation,PDO::PARAM_STR);
        $query->bindValue(':profession',$profession,PDO::PARAM_STR);
        $query->bindValue(':biographie',$biographie,PDO::PARAM_STR);
        $query->bindValue(':id',$id,PDO::PARAM_INT);
        $query->execute();
        $query->CloseCursor();
    }
    else
    {
        echo'<h1 class="texteerror">Modification interrompue</h1>';
        echo'<p class="texteerror">Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>';
        echo'<p class="texteerror">'.$i.' erreur(s)</p>';
        echo'<p class="texteerror">'.$mdp_erreur.'</p>';
        echo'<p class="texteerror">'.$email_erreur1.'</p>';
        echo'<p class="texteerror">'.$email_erreur2.'</p>';
        echo'<p class="texteerror">'.$msn_erreur.'</p>';
        echo'<p class="texteerror">'.$signature_erreur.'</p>';
        echo'<p class="texteerror">'.$avatar_erreur.'</p>';
        echo'<p class="texteerror">'.$avatar_erreur1.'</p>';
        echo'<p class="texteerror">'.$avatar_erreur2.'</p>';
        echo'<p class="texteerror">'.$avatar_erreur3.'</p>';
        echo'<p class="textewarning"> Cliquez <a href="./voirprofil.php?action=modifier">ici</a> pour recommencer</p>';
}
    break;
  
default;//Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
echo'<p class="texteerror">Cette action est impossible</p>';
}//Fin du switch
?>
</div>
<?php include("footer.inc.php"); ?>
</div>
</body>
</html>
Merci pour votre attention et votre aide.

Re: Modification d'un profil

Posté : 14 juin 2013, 16:09
par AB
Mais lorsque l'on effectue l'action de modifier son profil, tout le formulaire disparaît sans indication d'erreur ou de mauvais email etc... et surtout aucune modification ne se produit ^^'.
Vérifie le code html généré par ta page (Ctrl+u avec firefox) juste avant l'envoi de ton formulaire. Regardes le contenu de l'attribut "action" de ton formulaire. C'est à cette adresse que le contenu du post sera envoyé. A la suite du traitement peut être qu'il n'y a pas de retour vers la page en cours...

Re: Modification d'un profil

Posté : 14 juin 2013, 20:01
par reverb
Re,
Merci AB :), le problème ne venais pas de la, mais ma aidé à le trouvé :)
il y avait :
break;
 
default;//Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
echo'<p class="texteerror">Cette action est impossible</p>';
en trop ^^,

Ce qui ma amené à une autre erreur que je n'arrive pas à résoudre ^^'
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE membre_id=12' at line 2' in /home/croba286/public_html/voirprofil.php:411 Stack trace: #0 /home/croba286/public_html/voirprofil.php(411): PDOStatement->execute() #1 {main} thrown in /home/croba286/public_html/voirprofil.php on line 411
ma ligne 411 correspondant à
$query=$bdd->prepare('UPDATE membres
        SET  membre_mdp=:mdp, membre_email=:mail, membre_msn=:msn,  membre_yahoo=:yahoo, membre_facebook=:facebook, membre_tumblr=:tumblr,  membre_twitter=:twitter, membre_pinterest=:pinterest, membre_fotolog=:fotolog, membre_googleplus=:googleplus, membre_flickr=:flickr, membre_siteweb=:website, membre_signature=:signature, membre_localisation=:localisation, membre_profession=:profession, membre_biographie=:biographie, WHERE membre_id=:id');
394-        $query->bindValue(':mdp',$pass,PDO::PARAM_INT);
395-        $query->bindValue(':mail',$email,PDO::PARAM_STR);
396-        $query->bindValue(':msn',$msn,PDO::PARAM_STR);
397-		$query->bindValue(':yahoo',$yahoo,PDO::PARAM_STR);
398-		$query->bindValue(':facebook',$facebook,PDO::PARAM_STR);
399-		$query->bindValue(':tumblr',$tumblr,PDO::PARAM_STR);
400-		$query->bindValue(':twitter',$twitter,PDO::PARAM_STR);
401-		$query->bindValue(':fotolog',$fotolog,PDO::PARAM_STR);
402-		$query->bindValue(':pinterest',$pinterest,PDO::PARAM_STR);
403-		$query->bindValue(':googleplus',$googleplus,PDO::PARAM_STR);
404-		$query->bindValue(':flickr',$flickr,PDO::PARAM_STR);
405-        $query->bindValue(':website',$website,PDO::PARAM_STR);
406-        $query->bindValue(':signature',$signature,PDO::PARAM_STR);
407-        $query->bindValue(':localisation',$localisation,PDO::PARAM_STR);
408-		$query->bindValue(':profession',$profession,PDO::PARAM_STR);
409-		$query->bindValue(':biographie',$biographie,PDO::PARAM_STR);
410-       $query->bindValue(':id',$id,PDO::PARAM_INT);
411->        $query->execute();
412-      $query->CloseCursor();
Merci pour ton aide et ton attention AB :),
Sincèrement.

Re: Modification d'un profil

Posté : 15 juin 2013, 14:00
par reverb
Re,
L'erreur venait d'une virgule en trop dans une de mes requêtes,
et membre_email, au lieu de membre_mail ^^'.

Maintenant, aucune erreur php ne s'affiche, mais un autre problème ce pose :/.

Lorsque les informations du membres sont rajoutées, et que je valide ( pour modification du profil ), au lieu de me rajouter les informations supplémentaires,
toutes les informations du membre est supprimé ( mot de passe, email, etc.. ) et la seul indication restante est le pseudo .

Je ne vois comment remédié à ce soucis :s

Merci de votre attention et votre aide.

Re: Modification d'un profil

Posté : 17 juin 2013, 15:27
par reverb
Help :s

Re: Modification d'un profil

Posté : 17 juin 2013, 16:31
par AB
C'est l'update de la ligne 411 ? Vérifie les variables $pass, $email, $msn ...etc avec un echo pour voir si elles sont bien renseignées.

Re: Modification d'un profil

Posté : 17 juin 2013, 19:19
par reverb
Merci pour ton attention AB :),
J'ai tester toutes les variables, elle corresponde bien :/

Re: Modification d'un profil

Posté : 17 juin 2013, 19:42
par AB
Si les variables sont bien celles que tu attends il n'y a pas de raison pour que la requête update rentre des valeurs nulles, puisque tu dit qu'elles sont toutes supprimées. Soit il y a un code que tu ne contrôle pas après la requête update, soit ton code n'arrive pas jusqu'à cette requête, soit les variables sont nulles.

Re: Modification d'un profil

Posté : 21 juin 2013, 23:52
par reverb
Re,
J'ai relu le cours pour essayer de comprendre mon erreur, mais je m'arrache des cheveux, je ne voix pas la mauvaise manp que j'aurais pu faire :'(.
Un vrai coup de main pour la compréhension de la ou sa plante ne serait pas de refus,
voici le code de ma page voirprofil.php actuel :
<?php session_start(); ?>
<?php 
require_once("connexioninscription.inc.php");
$_GET['membre']=$_SESSION['membre_id'];
$action = isset($_GET['action'])?htmlspecialchars($_GET['action']):'consulter';
$action = isset($_GET['action'])?htmlspecialchars($_GET['action']):'modifier';
$membre = isset($_GET['membre'])?(int) $_GET['membre']:'';
 
 
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="voir le profil." />
<meta name="keywords" content="profil" />
<title>voir le profil </title>
<link rel="shortcut icon" sizes="32x32" title="profil' type="image/png" href="mafavicon.png" />
<link href="css1.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="container">
<?php include("header.inc.php"); ?>
<?php include("menus.inc.php"); ?>
<div id="cadreprofil">
<?php
//On regarde la valeur de la variable $action
switch($action)
{
    //Si c'est "consulter"
    case "consulter":
       //On récupère les infos du membre
 
	   if(isset ($_SESSION['membre_id']))
	   {
       $query = $bdd->prepare('SELECT membre_pseudo, membre_mail,  membre_inscription, membre_naissance, membre_msn, membre_yahoo, membre_facebook, membre_tumblr, membre_twitter, membre_flickr, membre_fotolog, membre_pinterest, membre_localisation, membre_profession, membre_avatar, membre_biographie, membre_signature, membre_nom, membre_prenom, membre_siteweb, membre_post FROM membres WHERE membre_id=:membre');
       $query->bindValue(':membre',$membre, PDO::PARAM_INT);
       $query->execute();
	   function dateUS2FR($date)
{
  $date = explode('-', $date);
  $date = array_reverse($date);
  $date = implode('/', $date);
  return $date;
}
       $data=$query->fetch(PDO::FETCH_ASSOC);
	   echo '<div id="infosmembre">';
	   echo'<p class="textesimple"><img src="./images/avatars/'.$data['membre_avatar'].'"
       alt="Votre avatar" /></p>';
		echo'<h1 class="textesimple">Profil de '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</h1>';
		echo '<p class="textesimple">'."Modifier votre : ".'<a href="voirprofil.php?action=modifier">'."Profil".'</a>';
	   echo '</div>';
 
		echo '<div id="infosmembre">';
 
		echo '<div id="cadrepseu"><p class="classinscr">'."Votre pseudo : ".'</p><p class="texteblancb">'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</b></p></div>';
 
		echo'<div id="cadrepseu"><p class="classinscr">'."Votre adresse mail courante : ".'</p><p class="texteblancb"><a href="mailto:'.stripslashes($data['membre_mail']).'">'.stripslashes(htmlspecialchars($data['membre_mail'])).'</a></p></div>';
 
		echo'<div id="cadrepseu"><p class="classinscr">'."Votre adresse Msn : ".'</p><p class="texteblancb"><a href="mailto:'.stripslashes($data['membre_msn']).'">'.stripslashes(htmlspecialchars($data['membre_msn'])).'</a></p></div>';
 
		echo'<div id="cadrepseu"><p class="classinscr">'."Votre adresse Yahoo : ".'</p><p class="texteblancb"><a href="mailto:'.stripslashes($data['membre_yahoo']).'">'.stripslashes(htmlspecialchars($data['membre_yahoo'])).'</a></p></div>';
 
		echo '<div id="cadrepseu"><p class="classinscr">'."Votre site web : ".'</p><p class="texteblancb"><a href="'.stripslashes($data['membre_siteweb']).'">'.stripslashes(htmlspecialchars($data['membre_siteweb'])).'</a></p></div>';
 
		echo'<div id="cadrepseu"><p class="classinscr">'."Votre adresse Facebook : ".'</p><p class="texteblancb"><a href="'.stripslashes($data['membre_facebook']).'">'.stripslashes(htmlspecialchars($data['membre_facebook'])).'</a></p></div>';
 
		echo'<div id="cadrepseu"><p class="classinscr">'."Votre adresse Tumblr : ".'</p><p class="texteblancb"><a href="'.stripslashes($data['membre_tumblr']).'">'.stripslashes(htmlspecialchars($data['membre_tumblr'])).'</a></p></div>';
 
		echo'<div id="cadrepseu"><p class="classinscr">'."Votre adresse Twitter : ".'</p><p class="texteblancb"><a href="'.stripslashes($data['membre_twitter']).'">'.stripslashes(htmlspecialchars($data['membre_twitter'])).'</a></p></div>';
 
		echo'<div id="cadrepseu"><p class="classinscr">'."Votre adresse Google Plus : ".'</p><p class="texteblancb"><a href="'.stripslashes($data['membre_googleplus']).'">'.stripslashes(htmlspecialchars($data['membre_googleplus'])).'</a></p></div>';
 
		echo'<div id="cadrepseu"><p class="classinscr">'."Votre adresse Flickr : ".'</p><p class="texteblancb"><a href="'.stripslashes($data['membre_flickr']).'">'.stripslashes(htmlspecialchars($data['membre_flickr'])).'</a></p></div>';
 
		echo'<div id="cadrepseu"><p class="classinscr">'."Votre adresse Fotolog : ".'</p><p class="texteblancb"><a href="'.stripslashes($data['membre_fotolog']).'">'.stripslashes(htmlspecialchars($data['membre_fotolog'])).'</a></p></div>';
 
		echo'<div id="cadrepseu"><p class="classinscr">'."Votre adresse Pinterest : ".'<p><p class="texteblancb"><a href="'.stripslashes($data['membre_pinterest']).'">'.stripslashes(htmlspecialchars($data['membre_pinterest'])).'</a></p></div>';
 
 		echo '<div id="cadrepseu"><p class="classinscr">'."Ce membre est inscrit depuis le ".'<p><p class="texteblancb">'.dateUS2FR($data['membre_inscription']).'</p></div>';
 
		echo '<div id="cadrepseu"><p class="classinscr">'."Vous avez posté : ".'</p><p class="texteblancb">'.$data['membre_post']." message(s)".'</p></div>';
 
		echo '<div id="cadrepseu"><p class="classinscr">'."Localisation : ".'<p><p class="texteblancb">'.stripslashes(htmlspecialchars($data['membre_localisation'])).'</p></div>';
 
		echo '<div id="cadrepseu"><p class="classinscr">'."Signature : ".'<p><p class="classinscr">'.stripslashes(htmlspecialchars($data['membre_signature'])).'</p></div>';
 
		echo '<div id="cadrepseu"><p class="classinscr">'."Biographie : ".'<p><p class="classinscr">'.stripslashes(htmlspecialchars($data['membre_biographie'])).'</p></div>';
 
		echo '</div>';
 
       $query->CloseCursor();
 
	   }
	   else
	   {
		 echo '<p class="texteerror">'."vous n'avez pas accès à cette page.".'<p>';   
		 echo '<p class="textewarning">'."Vous devez être connecté pour accèder à cette page.".'<p>';   
	   }
 
       break;
 
    //Si on choisit de modifier son profil
    case "modifier":
    if ($_POST['sent']) // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire
    {
        //On commence par s'assurer que le membre est connecté
		if(isset ($_SESSION['membre_id']))
	   {
		define('ERR_IS_NOT_CO','Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
		define('error','Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
		$id=(isset($_SESSION['membre_id']))?(int)$_SESSION['membre_id']:0;
        if ($id==0) error(ERR_IS_NOT_CO);
 
        //On prend les infos du membre
        $query=$bdd->prepare('SELECT membre_pseudo, membre_mail, membre_siteweb, membre_signature, membre_msn, membre_yahoo, membre_facebook, membre_tumblr, membre_twitter, membre_fotolog, membre_pinterest, membre_googleplus, membre_flickr, membre_nom, membre_prenom, membre_localisation, membre_profession, membre_biographie, membre_avatar FROM membres WHERE membre_id=:id');
        $query->bindValue(':id',$id,PDO::PARAM_INT);
        $query->execute();
        $data=$query->fetch();
echo '<div id="infosmembre">';
echo '<p class="textesimple">'."Consulter votre : ".'<a href="voirprofil.php?action=consulter">'."Profil".'</a>';
        echo '<h1 class="textesimple">'."Modification de votre profil".'</h1>';
  echo '</div>';  
 
       echo '<div id="infosmembre">';
        echo '<form method="post" action="voirprofil.php?action=modifier" enctype="multipart/form-data">
 
        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Identifiants</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr">Pseudo : <strong>'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</strong></p></div>    
          <div id="cadrepseu"><p class="classinscr"><label for="pass">Nouveau mot de Passe :</label>
        <input type="password" name="mdp" id="pass" value="'.stripslashes($data['membre_mdp']).'" /></p></div>
        <div id="cadrepseu"><p class="classinscr"><label for="confirm">Confirmer le mot de passe :</label>
        <input type="password" name="confirm" id="confirm" value="'.stripslashes($data['membre_mdp']).'"/></p></div>
        </fieldset>
 
        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Contacts</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="email">Votre adresse E_Mail :</label>
        <input type="text" name="mail" id="email"
        value="'.stripslashes($data['membre_mail']).'" /></p></div>
 
        <div id="cadrepseu"><p class="classinscr"><label for="msn">Votre adresse MSN :</label>
        <input type="text" name="msn" id="msn"
        value="'.stripslashes($data['membre_msn']).'" /></p></div>
 
		 <div id="cadrepseu"><p class="classinscr"><label for="yahoo">Votre adresse Yahoo :</label>
        <input type="text" name="yahoo" id="yahoo"
        value="'.stripslashes($data['membre_yahoo']).'" /></p></div>
 
		<div id="cadrepseu"><p class="classinscr"><label for="facebook">Votre adresse Facebook :</label>
        <input type="text" name="facebook" id="facebook"
        value="'.stripslashes($data['membre_facebook']).'" /></p></div>
 
		<div id="cadrepseu"><p class="classinscr"><label for="tumblr">Votre adresse Tumblr :</label>
        <input type="text" name="membre_tumblr" id="tumblr"
        value="'.stripslashes($data['tumblr']).'" /></p></div>
 
		<div id="cadrepseu"><p class="classinscr"><label for="twitter">Votre adresse Twitter :</label>
        <input type="text" name="twitter" id="twitter"
        value="'.stripslashes($data['membre_twitter']).'" /></p></div>
 
		<div id="cadrepseu"><p class="classinscr"><label for="pinterest">Votre adresse Pinterest :</label>
        <input type="text" name="pinterest" id="pinterest"
        value="'.stripslashes($data['membre_twitter']).'" /></p></div>
 
		<div id="cadrepseu"><p class="classinscr"><label for="fotolog">Votre adresse Fotolog :</label>
        <input type="text" name="fotolog" id="fotolog"
        value="'.stripslashes($data['membre_fotolog']).'" /></p></div>
 
		<div id="cadrepseu"><p class="classinscr"><label for="googleplus">Votre adresse Googleplus :</label>
        <input type="text" name="googleplus" id="googleplus"
        value="'.stripslashes($data['membre_googleplus']).'" /></p></div>
 
		<div id="cadrepseu"><p class="classinscr"><label for="flickr">Votre adresse Flickr :</label>
        <input type="text" name="flickr" id="flickr"
        value="'.stripslashes($data['membre_flickr']).'" /></p></div>
 
        <div id="cadrepseu"><p class="classinscr"><label for="website">Votre site web :</label>
        <input type="text" name="siteweb" id="website"
        value="'.stripslashes($data['membre_siteweb']).'" /></p></div>
        </fieldset>
 
        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Informations supplémentaires</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="localisation">Localisation :</label>
        <input type="text" name="localisation" id="localisation"
        value="'.stripslashes($data['membre_localisation']).'" /></p></div>
        </fieldset>
 
        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Profil sur le forum</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="avatar">Changer votre avatar :</label>
        <input type="file" name="avatar" id="avatar" />
        (Taille max : 10 Mo)<br /><br />
        <label><input type="checkbox" name="delete" value="Delete" />
        Supprimer l avatar</label>
        Avatar actuel :
        <img src="./images/avatars/'.$data['membre_avatar'].'"
        alt="pas d avatar" /></p></div>
 
         <div id="cadrepseu"><p class="classinscr"><label for="signature">Signature :</label>
        <textarea cols="40" rows="4" name="signature" id="signature">
        '.stripslashes($data['membre_signature']).'</textarea></p></div>
 
        <div id="cadrepseu"><p class="classinscr"><label for="profession">Profession :</label>
        <textarea cols="40" rows="4" name="profession" id="profession">
        '.stripslashes($data['membre_profession']).'</textarea></p></div>
 
        <div id="cadrepseu"><p class="classinscr"><label for="biographie">Biographie :</label>
        <textarea cols="40" rows="4" name="biographie" id="biographie">
        '.stripslashes($data['membre_biographie']).'</textarea></p></div>
 
        </fieldset>
        <p class="classinscr"><input type="submit" value="Modifier son profil" />
        <input type="hidden" id="sent" name="sent" value="1" />
        </p></form>';
 
		echo '</div>';
 
        $query->CloseCursor();  
 
	   }
	   else
	   {
		   echo '<p class="texteerror">'."Vous n'avez pas accès à cette page.".'</p>';
		   echo '<p class="textewarning">'."Vous devez être connecté pour accèder à cette page.".'</p>';
	   }
    }  
    else //Cas du traitement
    {
     //On déclare les variables 
    $mdp_erreur=NULL;
    $email_erreur1=NULL;
    $email_erreur2=NULL;
	$yahoo_erreur=NULL;
    $msn_erreur=NULL;
    $signature_erreur=NULL;
    $avatar_erreur=NULL;
    $avatar_erreur1=NULL;
    $avatar_erreur2=NULL;
    $avatar_erreur3=NULL;
 
    //Encore et toujours notre belle variable $i :p
    $i=0;
    $temps=time(); 
    $signature=$_POST['signature'];
    $email=$_POST['mail'];
    $msn=$_POST['msn'];
	$yahoo=$_POST['yahoo'];
	$facebook=$_POST['facebook'];
	$tumblr=$_POST['tumblr'];
	$twitter=$_POST['twitter'];
	$pinterest=$_POST['pinterest'];
	$fotolog=$_POST['fotolog'];
	$googleplus=$_POST['googleplus'];
	$flickr=$_POST['flickr'];
    $website=$_POST['siteweb'];
	$profession=$_POST['profession'];
	$biographie=$_POST['biographie'];
    $localisation=$_POST['localisation'];
    $pass=($_POST['mdp']);
    $confirm=($_POST['confirm']);
    //Vérification du mdp
    if ($pass != $confirm || empty($confirm) || empty($pass))
    {
         $mdp_erreur='<p class="texteerror">'."Votre mot de passe et votre confirmation diffèrent ou sont vides".'</p>';
         $i++;
    }
 
    //Vérification de l'adresse email
    //Il faut que l'adresse email n'ait jamais été utilisée (sauf si elle n'a pas été modifiée)
 
    //On commence donc par récupérer le mail
    $query=$bdd->prepare('SELECT membre_mail FROM membres WHERE membre_id=:id'); 
    $query->bindValue(':id',$id,PDO::PARAM_INT);
    $query->execute();
    $data=$query->fetch();
    if (strtolower($data['membre_mail']) != strtolower($email))
    {
        //Il faut que l'adresse email n'ait jamais été utilisée
        $query=$bdd->prepare('SELECT COUNT(*) AS nbr FROM membres WHERE membre_mail=:mail');
        $query->bindValue(':mail',$email,PDO::PARAM_STR);
        $query->execute();
        $mail_free=($query->fetchColumn()==0)?1:0;
        $query->CloseCursor();
        if(!$mail_free)
        {
            $email_erreur1 = '<p class="textewarning">'."Votre adresse email est déjà utilisé par un membre".'</p>';
            $i++;
        }
 
        //On vérifie la forme maintenant
        if (!preg_match("#^[a-z0-9A-Z._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
        {
            $email_erreur2 = '<p class="texteerror">'."Votre nouvelle adresse E-Mail n'a pas un format valide".'</p>';
            $i++;
        }
    }
    //Vérification de l'adresse MSN
    if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn))
    {
        $msn_erreur = '<p class="texteerror">'."Votre nouvelle adresse MSN n'a pas un format valide".'</p>';
        $i++;
    }
 
	if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $yahoo) && !empty($yahoo))
    {
        $yahoo_erreur = '<p class="texteerror">'."Votre nouvelle adresse Yahoo n'a pas un format valide".'</p>';
        $i++;
    }
 
    //Vérification de la signature
    if (strlen($signature) > 200)
    {
        $signature_erreur = '<p class="textewarning">'."Votre nouvelle signature est trop longue".'</p>';
        $i++;
    }
 
 
    //Vérification de l'avatar
 
    if (!empty($_FILES['membre_avatar']['size']))
    {
        //On définit les variables :
        $maxsize = 100000; //Poid de l'image
        $maxwidth = 500; //Largeur de l'image
        $maxheight = 500; //Longueur de l'image
        //Liste des extensions valides
        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' );
 
        if ($_FILES['membre_avatar']['error'] > 0)
        {
        $avatar_erreur = '<p class="texteerror">'."Erreur lors du tranfsert de l'avatar : ".'</p>';
        }
        if ($_FILES['membre_avatar']['size']>$maxsize)
        {
        $i++;
        $avatar_erreur1="Le fichier est trop gros :
        (".$_FILES['membre_avatar']['size']." Octets
        contre ".$maxsize." Octets)";
        }
 
        $image_sizes=getimagesize($_FILES['membre_avatar']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
        {
        $i++;
        $avatar_erreur2="Image trop large ou trop longue :
        (<strong>".$image_sizes[0]."x".$image_sizes[1]." contre
        ".$maxwidth."x".$maxheight.")";
        }
 
        $extension_upload=strtolower(substr(strrchr($_FILES['membre_avatar']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {
                $i++;
                $avatar_erreur3 = '<p class="texteerror">'."Extension de l'avatar incorrecte".'</p>';
        }
    }
 
    }
 
    echo '<h1>'."Modification d'un profil".'</h1>';
 
 
    if ($i == 0) // Si $i est vide, il n'y a pas d'erreur
    {
        if (!empty($_FILES['membre_avatar']['size']))
        {
                $nomavatar=move_avatar($_FILES['membre_avatar']);
                $query=$bdd->prepare('UPDATE membres SET membre_avatar=:avatar WHERE membre_id=:id');
                $query->bindValue(':avatar',$nomavatar,PDO::PARAM_STR);
                $query->bindValue(':id',$id,PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
        }
 
        //Une nouveauté ici : on peut choisis de supprimer l'avatar
        if (isset($_POST['delete']))
        {
                $query=$bdd->prepare('UPDATE membres SET membre_avatar=0 WHERE membre_id=:id');
                $query->bindValue(':id',$id,PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
        }
 
        echo'<h1>'."Modification terminée".'</h1>';
        echo'<p>'."Votre profil a été modifié avec succès !".'</p>';
        echo'<p>'."Cliquez ".'<a href="./index.php">'."ici".'</a>'." 
        pour revenir à la page d accueil".'</p>';
 
        //On modifie la table
 
        $query=$bdd->prepare('UPDATE membres SET membre_mdp=:mdp, membre_mail=:mail, membre_msn=:msn, membre_yahoo=:yahoo, membre_facebook=:facebook, membre_tumblr=:tumblr, membre_twitter=:twitter, membre_pinterest=:pinterest, membre_fotolog=:fotolog, membre_googleplus=:googleplus, membre_flickr=:flickr, membre_siteweb=:siteweb, membre_signature=:signature, membre_localisation=:localisation, membre_profession=:profession, membre_biographie=:biographie WHERE membre_id=:id');
        $query->bindValue(':mdp',$pass,PDO::PARAM_INT);
        $query->bindValue(':mail',$email,PDO::PARAM_STR);
        $query->bindValue(':msn',$msn,PDO::PARAM_STR);
		$query->bindValue(':yahoo',$yahoo,PDO::PARAM_STR);
		$query->bindValue(':facebook',$facebook,PDO::PARAM_STR);
		$query->bindValue(':tumblr',$tumblr,PDO::PARAM_STR);
		$query->bindValue(':twitter',$twitter,PDO::PARAM_STR);
		$query->bindValue(':fotolog',$fotolog,PDO::PARAM_STR);
		$query->bindValue(':pinterest',$pinterest,PDO::PARAM_STR);
		$query->bindValue(':googleplus',$googleplus,PDO::PARAM_STR);
		$query->bindValue(':flickr',$flickr,PDO::PARAM_STR);
        $query->bindValue(':siteweb',$website,PDO::PARAM_STR);
        $query->bindValue(':signature',$signature,PDO::PARAM_STR);
        $query->bindValue(':localisation',$localisation,PDO::PARAM_STR);
		$query->bindValue(':profession',$profession,PDO::PARAM_STR);
		$query->bindValue(':biographie',$biographie,PDO::PARAM_STR);
        $query->bindValue(':id',$id,PDO::PARAM_INT);
        $query->execute();
        $query->CloseCursor();
    }
    else
    {
        echo'<h1 class="texteerror">Modification interrompue</h1>';
        echo'<p class="texteerror">Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>';
        echo'<p class="texteerror">'.$i.' erreur(s)</p>';
        echo'<p class="texteerror">'.$mdp_erreur.'</p>';
        echo'<p class="texteerror">'.$email_erreur1.'</p>';
        echo'<p class="texteerror">'.$email_erreur2.'</p>';
		echo'<p class="texteerror">'.$yahoo.'</p>';
        echo'<p class="texteerror">'.$msn_erreur.'</p>';
        echo'<p class="texteerror">'.$signature_erreur.'</p>';
        echo'<p class="texteerror">'.$avatar_erreur.'</p>';
        echo'<p class="texteerror">'.$avatar_erreur1.'</p>';
        echo'<p class="texteerror">'.$avatar_erreur2.'</p>';
        echo'<p class="texteerror">'.$avatar_erreur3.'</p>';
        echo'<p class="textewarning"> Cliquez <a href="./voirprofil.php?action=modifier">ici</a> pour recommencer</p>';
}
    break;
 
default;//Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
echo'<p class="texteerror">Cette action est impossible</p>';
}//Fin du switch
?>
</div>
<?php include("footer.inc.php"); ?>
</div>
</body>
</html>
Merci à ceux qui auront la patience de m'aider :s,
Sincèrement.

Re: Modification d'un profil

Posté : 22 juin 2013, 11:41
par moogli
salut,


rien qu'au début :
<?php session_start();
require_once 'connexioninscription.inc.php';
if (empty($_SESSION['membre_id'])) {
    echo '<p class="texteerror">' . "vous n'avez pas accès à cette page." . '<p>';
    echo '<p class="textewarning">' . "Vous devez être connecté pour accèder à cette page." . '<p>';
}
?>
<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="description" content="voir le profil."/>
    <meta name="keywords" content="profil"/>
    <title>voir le profil </title>
    <link rel="shortcut icon" sizes="32x32" title="profil" type="image/png" href="mafavicon.png"/>
    <link href="css1.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="container">
    <?php
    include 'header.inc.php';
    include 'menus.inc.php';
    ?>
    <div id="cadreprofil">
        <?php
        if (empty($_GET['action'])) {
            echo '<p class="texteerror" > Cette action est impossible </p >';
        } else {
            switch ($_GET['action']) {
                //Si c'est "consulter"
                case "consulter":
                    //On récupère les infos du membre
                    include 'consulter.php';
                    break;
                //Si on choisit de modifier son profil
                case "modifier":
                    include 'modifier.php';
                    break;
                default; //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème <img src="http://forum.phpfrance.com/images/smilies/icon_surprised.gif" alt=":o" title="Surprised" />
                    echo '<p class="texteerror">Cette action est impossible</p>';
            } //Fin du switch
        }
        ?>
    </div>
    <?php
    include 'footer.inc.php';
    ?>
</div>
</body>
</html>
 
ta fonction de "transformation" de date est inutile, il existe des fonctions / classes native en php pour cela (par exemple la classe dateTime).
Mais surtout tu peux le demander à mysql directement avec la fonction date_format

la concaténation a tous va tu peux virer c'et inutile et pas super lisible (surtout que tu n'a pas de cohérence au niveau de l'utilisation du délimiteur de chaîne de caractère donc on e sais pas à quel saint se vouer).

le stripslashes est inutile. Désactive les magic_quote via ini_set ou htaccess. Un peu de lecture sur la magie noure des apostrophes magiques ;)

sur la modification tu fait l'insertion dans en dehors du else . Pourquoi ?
c'est dans le else qu'il faut la faire, et le closeCursor n'est utile que si tu fait un select !

du coup ferais ainsi
modifier.php
<?php
if (empty($_POST['sent'])) { // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire

    //On commence par s'assurer que le membre est connecté
    if (isset ($_SESSION['membre_id'])) {
        define('ERR_IS_NOT_CO', 'Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
        define('error', 'Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
        $id = (isset($_SESSION['membre_id'])) ? (int)$_SESSION['membre_id'] : 0;
        if ($id == 0) error(ERR_IS_NOT_CO);

        //On prend les infos du membre
        $query = $bdd->prepare('SELECT membre_pseudo, membre_mail, membre_siteweb, membre_signature, membre_msn, membre_yahoo, membre_facebook, membre_tumblr, membre_twitter, membre_fotolog, membre_pinterest, membre_googleplus, membre_flickr, membre_nom, membre_prenom, membre_localisation, membre_profession, membre_biographie, membre_avatar FROM membres WHERE membre_id=:id');
        $query->bindValue(':id', $id, PDO::PARAM_INT);
        $query->execute();
        $data = $query->fetch();
        echo '<div id="infosmembre">';
        echo '<p class="textesimple">' . "Consulter votre : " . '<a href="voirprofil.php?action=consulter">' . "Profil" . '</a>';
        echo '<h1 class="textesimple">' . "Modification de votre profil" . '</h1>';
        echo '</div>';

        echo '<div id="infosmembre">';
        echo '<form method="post" action="voirprofil.php?action=modifier" enctype="multipart/form-data">

        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Identifiants</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr">Pseudo : <strong>' . htmlspecialchars($data['membre_pseudo']) . '</strong></p></div>
          <div id="cadrepseu"><p class="classinscr"><label for="pass">Nouveau mot de Passe :</label>
        <input type="password" name="mdp" id="pass" value="' . $data['membre_mdp'] . '" /></p></div>
        <div id="cadrepseu"><p class="classinscr"><label for="confirm">Confirmer le mot de passe :</label>
        <input type="password" name="confirm" id="confirm" value="' . $data['membre_mdp'] . '"/></p></div>
        </fieldset>

        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Contacts</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="email">Votre adresse E_Mail :</label>
        <input type="text" name="mail" id="email"
        value="' . $data['membre_mail'] . '" /></p></div>

        <div id="cadrepseu"><p class="classinscr"><label for="msn">Votre adresse MSN :</label>
        <input type="text" name="msn" id="msn"
        value="' . $data['membre_msn'] . '" /></p></div>

                 <div id="cadrepseu"><p class="classinscr"><label for="yahoo">Votre adresse Yahoo :</label>
        <input type="text" name="yahoo" id="yahoo"
        value="' . $data['membre_yahoo'] . '" /></p></div>

                <div id="cadrepseu"><p class="classinscr"><label for="facebook">Votre adresse Facebook :</label>
        <input type="text" name="facebook" id="facebook"
        value="' . $data['membre_facebook'] . '" /></p></div>

                <div id="cadrepseu"><p class="classinscr"><label for="tumblr">Votre adresse Tumblr :</label>
        <input type="text" name="membre_tumblr" id="tumblr"
        value="' . $data['tumblr'] . '" /></p></div>

                <div id="cadrepseu"><p class="classinscr"><label for="twitter">Votre adresse Twitter :</label>
        <input type="text" name="twitter" id="twitter"
        value="' . $data['membre_twitter'] . '" /></p></div>

                <div id="cadrepseu"><p class="classinscr"><label for="pinterest">Votre adresse Pinterest :</label>
        <input type="text" name="pinterest" id="pinterest"
        value="' . $data['membre_twitter'] . '" /></p></div>

                <div id="cadrepseu"><p class="classinscr"><label for="fotolog">Votre adresse Fotolog :</label>
        <input type="text" name="fotolog" id="fotolog"
        value="' . $data['membre_fotolog'] . '" /></p></div>

                <div id="cadrepseu"><p class="classinscr"><label for="googleplus">Votre adresse Googleplus :</label>
        <input type="text" name="googleplus" id="googleplus"
        value="' . $data['membre_googleplus'] . '" /></p></div>

                <div id="cadrepseu"><p class="classinscr"><label for="flickr">Votre adresse Flickr :</label>
        <input type="text" name="flickr" id="flickr"
        value="' . $data['membre_flickr'] . '" /></p></div>

        <div id="cadrepseu"><p class="classinscr"><label for="website">Votre site web :</label>
        <input type="text" name="siteweb" id="website"
        value="' . $data['membre_siteweb'] . '" /></p></div>
        </fieldset>

        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Informations supplémentaires</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="localisation">Localisation :</label>
        <input type="text" name="localisation" id="localisation"
        value="' . $data['membre_localisation'] . '" /></p></div>
        </fieldset>

        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Profil sur le forum</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="avatar">Changer votre avatar :</label>
        <input type="file" name="avatar" id="avatar" />
        (Taille max : 10 Mo)<br /><br />
        <label><input type="checkbox" name="delete" value="Delete" />
        Supprimer l avatar</label>
        Avatar actuel :
        <img src="./images/avatars/' . $data['membre_avatar'] . '"
        alt="pas d avatar" /></p></div>

         <div id="cadrepseu"><p class="classinscr"><label for="signature">Signature :</label>
        <textarea cols="40" rows="4" name="signature" id="signature">
        ' . $data['membre_signature'] . '</textarea></p></div>

        <div id="cadrepseu"><p class="classinscr"><label for="profession">Profession :</label>
        <textarea cols="40" rows="4" name="profession" id="profession">
        ' . $data['membre_profession'] . '</textarea></p></div>

        <div id="cadrepseu"><p class="classinscr"><label for="biographie">Biographie :</label>
        <textarea cols="40" rows="4" name="biographie" id="biographie">
        ' . $data['membre_biographie'] . '</textarea></p></div>

        </fieldset>
        <p class="classinscr"><input type="submit" value="Modifier son profil" />
        <input type="hidden" id="sent" name="sent" value="1" />
        </p></form>';

        echo '</div>';

        $query->CloseCursor();

    } else {
        echo '<p class="texteerror">' . "Vous n'avez pas accès à cette page." . '</p>';
        echo '<p class="textewarning">' . "Vous devez être connecté pour accèder à cette page." . '</p>';
    }
} else { //Cas du traitement

    //On déclare les variables
    $mdp_erreur = NULL;
    $email_erreur1 = NULL;
    $email_erreur2 = NULL;
    $yahoo_erreur = NULL;
    $msn_erreur = NULL;
    $signature_erreur = NULL;
    $avatar_erreur = NULL;
    $avatar_erreur1 = NULL;
    $avatar_erreur2 = NULL;
    $avatar_erreur3 = NULL;

    //Encore et toujours notre belle variable $i :p
    $i = 0;
    $temps = time();
    $signature = $_POST['signature'];
    $email = $_POST['mail'];
    $msn = $_POST['msn'];
    $yahoo = $_POST['yahoo'];
    $facebook = $_POST['facebook'];
    $tumblr = $_POST['tumblr'];
    $twitter = $_POST['twitter'];
    $pinterest = $_POST['pinterest'];
    $fotolog = $_POST['fotolog'];
    $googleplus = $_POST['googleplus'];
    $flickr = $_POST['flickr'];
    $website = $_POST['siteweb'];
    $profession = $_POST['profession'];
    $biographie = $_POST['biographie'];
    $localisation = $_POST['localisation'];
    $pass = ($_POST['mdp']);
    $confirm = ($_POST['confirm']);
    //Vérification du mdp
    if ($pass != $confirm || empty($confirm) || empty($pass)) {
        $mdp_erreur = '<p class="texteerror">' . "Votre mot de passe et votre confirmation diffèrent ou sont vides" . '</p>';
        $i++;
    }

    //Vérification de l'adresse email
    //Il faut que l'adresse email n'ait jamais été utilisée (sauf si elle n'a pas été modifiée)

    //On commence donc par récupérer le mail
    $query = $bdd->prepare('SELECT membre_mail FROM membres WHERE membre_id=:id');
    $query->bindValue(':id', $id, PDO::PARAM_INT);
    $query->execute();
    $data = $query->fetch();
    if (strtolower($data['membre_mail']) != strtolower($email)) {
        //Il faut que l'adresse email n'ait jamais été utilisée
        $query = $bdd->prepare('SELECT COUNT(*) AS nbr FROM membres WHERE membre_mail=:mail');
        $query->bindValue(':mail', $email, PDO::PARAM_STR);
        $query->execute();
        $mail_free = ($query->fetchColumn() == 0) ? 1 : 0;
        $query->CloseCursor();
        if (!$mail_free) {
            $email_erreur1 = '<p class="textewarning">' . "Votre adresse email est déjà utilisé par un membre" . '</p>';
            $i++;
        }

        //On vérifie la forme maintenant
        if (!preg_match("#^[a-z0-9A-Z._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email)) {
            $email_erreur2 = '<p class="texteerror">' . "Votre nouvelle adresse E-Mail n'a pas un format valide" . '</p>';
            $i++;
        }
    }
    //Vérification de l'adresse MSN
    if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn)) {
        $msn_erreur = '<p class="texteerror">' . "Votre nouvelle adresse MSN n'a pas un format valide" . '</p>';
        $i++;
    }

    if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $yahoo) && !empty($yahoo)) {
        $yahoo_erreur = '<p class="texteerror">' . "Votre nouvelle adresse Yahoo n'a pas un format valide" . '</p>';
        $i++;
    }

    //Vérification de la signature
    if (strlen($signature) > 200) {
        $signature_erreur = '<p class="textewarning">' . "Votre nouvelle signature est trop longue" . '</p>';
        $i++;
    }


    //Vérification de l'avatar

    if (!empty($_FILES['membre_avatar']['size'])) {
        //On définit les variables :
        $maxsize = 100000; //Poid de l'image
        $maxwidth = 500; //Largeur de l'image
        $maxheight = 500; //Longueur de l'image
        //Liste des extensions valides
        $extensions_valides = array('jpg', 'jpeg', 'gif', 'png', 'bmp');

        if ($_FILES['membre_avatar']['error'] > 0) {
            $avatar_erreur = '<p class="texteerror">' . "Erreur lors du tranfsert de l'avatar : " . '</p>';
        }
        if ($_FILES['membre_avatar']['size'] > $maxsize) {
            $i++;
            $avatar_erreur1 = "Le fichier est trop gros :
        (" . $_FILES['membre_avatar']['size'] . " Octets
        contre " . $maxsize . " Octets)";
        }

        $image_sizes = getimagesize($_FILES['membre_avatar']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) {
            $i++;
            $avatar_erreur2 = "Image trop large ou trop longue :
        (<strong>" . $image_sizes[0] . "x" . $image_sizes[1] . " contre
        " . $maxwidth . "x" . $maxheight . ")";
        }

        $extension_upload = strtolower(substr(strrchr($_FILES['membre_avatar']['name'], '.'), 1));
        if (!in_array($extension_upload, $extensions_valides)) {
            $i++;
            $avatar_erreur3 = '<p class="texteerror">' . "Extension de l'avatar incorrecte" . '</p>';
        }
    }
    echo '<h1>' . "Modification d'un profil" . '</h1>';

    if ($i == 0) { // Si $i est vide, il n'y a pas d'erreur
        if (!empty($_FILES['membre_avatar']['size'])) {
            $nomavatar = move_avatar($_FILES['membre_avatar']);
            $query = $bdd->prepare('UPDATE membres SET membre_avatar=:avatar WHERE membre_id=:id');
            $query->bindValue(':avatar', $nomavatar, PDO::PARAM_STR);
            $query->bindValue(':id', $id, PDO::PARAM_INT);
            $query->execute();
            $query->CloseCursor();
        }

        //Une nouveauté ici : on peut choisis de supprimer l'avatar
        if (isset($_POST['delete'])) {
            $query = $bdd->prepare('UPDATE membres SET membre_avatar=0 WHERE membre_id=:id');
            $query->bindValue(':id', $id, PDO::PARAM_INT);
            $query->execute();
            $query->CloseCursor();
        }

        echo '<h1>' . "Modification terminée" . '</h1>';
        echo '<p>' . "Votre profil a été modifié avec succès !" . '</p>';
        echo '<p>' . "Cliquez " . '<a href="./index.php">' . "ici" . '</a>' . "
        pour revenir à la page d accueil" . '</p>';
    } else {
        echo '<h1 class="texteerror">Modification interrompue</h1>';
        echo '<p class="texteerror">Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>';
        echo '<p class="texteerror">' . $i . ' erreur(s)</p>';
        echo '<p class="texteerror">' . $mdp_erreur . '</p>';
        echo '<p class="texteerror">' . $email_erreur1 . '</p>';
        echo '<p class="texteerror">' . $email_erreur2 . '</p>';
        echo '<p class="texteerror">' . $yahoo . '</p>';
        echo '<p class="texteerror">' . $msn_erreur . '</p>';
        echo '<p class="texteerror">' . $signature_erreur . '</p>';
        echo '<p class="texteerror">' . $avatar_erreur . '</p>';
        echo '<p class="texteerror">' . $avatar_erreur1 . '</p>';
        echo '<p class="texteerror">' . $avatar_erreur2 . '</p>';
        echo '<p class="texteerror">' . $avatar_erreur3 . '</p>';
        echo '<p class="textewarning"> Cliquez <a href="./voirprofil.php?action=modifier">ici</a> pour recommencer</p>';
    }
}
consulter.php
<?php
$query = $bdd->prepare('SELECT membre_pseudo, membre_mail, date_format(\'%d/%m/%Y\',membre_inscription) membre_inscription, membre_naissance, membre_msn, membre_yahoo, membre_facebook, membre_tumblr, membre_twitter, membre_flickr, membre_fotolog, membre_pinterest, membre_localisation, membre_profession, membre_avatar, membre_biographie, membre_signature, membre_nom, membre_prenom, membre_siteweb, membre_post FROM membres WHERE membre_id=:membre');
$query->bindValue(':membre', $membre, PDO::PARAM_INT);
$ret = $query->execute();
if ($ret === false) {
    $err = $bdd->errorInfo();
    echo 'Erreur SQL : ' . $err[2];
} else {
    $data = $query->fetch(PDO::FETCH_ASSOC);
    echo '<div id="infosmembre">';
    echo '<p class="textesimple"><img src="./images/avatars/' . $data['membre_avatar'] . '"
                                      alt="Votre avatar" /></p>';
    echo '<h1 class="textesimple">Profil de ' . htmlspecialchars($data['membre_pseudo']) . '</h1>';
    echo '<p class="textesimple">Modifier votre : <a href="voirprofil.php?action=modifier">Profil</a>';
    echo '</div>';

    echo '<div id="infosmembre">';

    echo '<div id="cadrepseu"><p class="classinscr">Votre pseudo : </p><p class="texteblancb">' . htmlspecialchars($data['membre_pseudo']) . '</b></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre adresse mail courante : </p><p class="texteblancb"><a href="mailto:' . $data['membre_mail'] . '">' . htmlspecialchars($data['membre_mail']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre adresse Msn : </p><p class="texteblancb"><a href="mailto:' . $data['membre_msn'] . '">' . htmlspecialchars($data['membre_msn']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre adresse Yahoo : </p><p class="texteblancb"><a href="mailto:' . $data['membre_yahoo'] . '">' . htmlspecialchars($data['membre_yahoo']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre site web : </p><p class="texteblancb"><a href="' . $data['membre_siteweb'] . '">' . htmlspecialchars($data['membre_siteweb']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre adresse Facebook : </p><p class="texteblancb"><a href="' . $data['membre_facebook'] . '">' . htmlspecialchars($data['membre_facebook']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre adresse Tumblr : </p><p class="texteblancb"><a href="' . $data['membre_tumblr'] . '">' . htmlspecialchars($data['membre_tumblr']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre adresse Twitter : </p><p class="texteblancb"><a href="' . $data['membre_twitter'] . '">' . htmlspecialchars($data['membre_twitter']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre adresse Google Plus : </p><p class="texteblancb"><a href="' . $data['membre_googleplus'] . '">' . htmlspecialchars($data['membre_googleplus']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre adresse Flickr : </p><p class="texteblancb"><a href="' . $data['membre_flickr'] . '">' . htmlspecialchars($data['membre_flickr']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre adresse Fotolog : </p><p class="texteblancb"><a href="' . $data['membre_fotolog'] . '">' . htmlspecialchars($data['membre_fotolog']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Votre adresse Pinterest : <p><p class="texteblancb"><a href="' . $data['membre_pinterest'] . '">' . htmlspecialchars($data['membre_pinterest']) . '</a></p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Ce membre est inscrit depuis le <p><p class="texteblancb">' . $data['membre_inscription'] . '</p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Vous avez posté : </p><p class="texteblancb">' . $data['membre_post'] . ' message(s)</p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Localisation : <p><p class="texteblancb">' . htmlspecialchars($data['membre_localisation']) . '</p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Signature : <p><p class="classinscr">' . htmlspecialchars($data['membre_signature']) . '</p></div>';

    echo '<div id="cadrepseu"><p class="classinscr">Biographie : <p><p class="classinscr">' . htmlspecialchars($data['membre_biographie']) . '</p></div>';

    echo '</div>';

    $query->CloseCursor();
}
sinon coté base de donnée j'y vois un problème de conception.

Les champs correspondant aux réseaux sociaux ne devrait pas être dans cette table.
  • parce que tu va forcément avoir des champs vide.
  • Parce que si tu doit en ajouter tu va ajouter un champs à la table ? et finir avec 400 champs ?
tu devrais faire une table pour lister les résaux et une pour la liaison membre et réseaux ;)


@+

Re: Modification d'un profil

Posté : 27 juin 2013, 19:09
par reverb
Bonjour à toi Moogli, encore merci pour ton aide ( aurait-tu rédigé des tutoriaux ? =) )
J'ai suivi ton conseil, j'ai créé une autre table contenant les réseaux sociaux, mais pour plus de simplicité pour que le système de modification fonctionne, j'ai provisoirement retiré l'affichage et la modification des réseaux sociaux.

Mes Informations ne se modifie pas :/,
Pourtant lorsque je renseigne ( pour tester ^^ ) une autre adresse email une localisation etc.., la validation est éffectué, mais rien ne se rajoute dans ma base de données :/.
Faut-il également créer une nouvelle table pour la signature du membre son site web ( breff toutes les informations secondaire ) et ne laissée que le mdp, pseudo, mail, et date d'inscription dans une seul table ?

Merci pour ton aide précieuse encore une fois,
Sincèrement.

Re: Modification d'un profil

Posté : 27 juin 2013, 20:59
par moogli
des tutos, j'ai tenté mais j'suis pas assez assidu à la chose :)

Pour le reste il s'agit de modéliser la base. Il existe des bonnes pratiques pour cela comme le modèle entité - association issue de la méthode merise ou les formes normales dont la première stipule l'unicité d'une donnée.


donc en gros tu garde en champs ce qui doit être unique et tu ajoute des entités autours pour le reste.

Par exemple les réseaux sociaux, mais aussi les téléphones (sur le principe peux faire une table pour les type de téléphone, mais il ets possible de ne faire qu'un domaine à toi de voir).

voici un exemple de modélisation d'une personne :)


sinon tu en est où dans ton code ?


@+

Re: Modification d'un profil

Posté : 28 juin 2013, 11:30
par Do_While
Est ce que tu as essayé de faire un
echo $query;
de ta requête ?

juste pour voire si elle est bien construite.

J'ai déjà eu des soucis d'insertion de données à cause d'une requête mal construite.

Re: Modification d'un profil

Posté : 01 juil. 2013, 16:19
par reverb
Bonjour à vous,
merci pour ton intérêt Do_While =),
J'ai enfin résolu ce qui n'allait pas,
dans mes requêtes ( Bindvalue ) des variables était présente sans être déclarée,

j'ai donc rajouté une définition à chacune des variables qu'il ne l'était pas,
$membre = ($_SESSION['membre_id']);
$query = $bdd->prepare('SELECT membre_pseudo, membre_mail, date_format(\'%d/%m/%Y\',membre_inscription), membre_avatar, membre_post FROM membres WHERE membre_id=:membreid');
$query->bindValue(':membreid', $membre, PDO::PARAM_INT);
$ret = $query->execute();

$id=($_SESSION['membre_id']);
        $query = $bdd->prepare('SELECT membre_pseudo, membre_mail, membre_avatar FROM membres WHERE membre_id=:id');
        $query->bindValue(':id', $id, PDO::PARAM_INT);
        $query->execute();
et deux trois autres encore,
en revanche un autre problème persiste concernant l'image du profil ( l'avatar ) qui ne se rajoute pas :(.

Voici le code mis à jour de ma page modifier.php :
<?php session_start();
if (empty($_POST['sent'])) { // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire

    //On commence par s'assurer que le membre est connecté
    if (isset ($_SESSION['membre_id'])) {

        //On prend les infos du membre
		$id=($_SESSION['membre_id']);
        $query = $bdd->prepare('SELECT membre_pseudo, membre_mail, membre_avatar FROM membres WHERE membre_id=:id');
        $query->bindValue(':id', $id, PDO::PARAM_INT);
        $query->execute();
        $data = $query->fetch();
        echo '<div id="infosmembre">';
        echo '<p class="textesimple">' . "Consulter votre : " . '<a href="voirprofil.php?action=consulter">' . "Profil" . '</a>';
        echo '<h1 class="textesimple">' . "Modification de votre profil" . '</h1>';
        echo '</div>';

        echo '<div id="infosmembre">';
        echo '<form method="post" action="voirprofil.php?action=modifier" enctype="multipart/form-data">

        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Identifiants</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr">Pseudo : <strong>' . htmlspecialchars($data['membre_pseudo']) . '</strong></p></div>
          <div id="cadrepseu"><p class="classinscr"><label for="pass">Nouveau mot de Passe :</label>
        <input type="password" name="mdp" id="pass" value="' . $data['membre_mdp'] . '" /></p></div>
        <div id="cadrepseu"><p class="classinscr"><label for="confirm">Confirmer le mot de passe :</label>
        <input type="password" name="confirm" id="confirm" value="' . $data['membre_mdp'] . '"/></p></div>
        </fieldset>

        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Contacts</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="email">Votre adresse E_Mail :</label>
        <input type="text" name="mail" id="email"
        value="' . $data['membre_mail'] . '" /></p></div>

        <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Profil sur le forum</b></p></div></legend>
        <div id="cadrepseu"><p class="classinscr"><label for="avatar">Changer votre avatar :</label>
        <input type="file" name="avatar" id="avatar" />
        (Taille max : 10 Mo)<br /><br />
        <label><input type="checkbox" name="delete" value="Delete" />
        Supprimer l avatar</label>
        Avatar actuel :
        <img src="./images/avatars/' . $data['membre_avatar'] . '"
        alt="pas d avatar" /></p></div>


        </fieldset>
        <p class="classinscr"><input type="submit" value="Modifier son profil" />
        <input type="hidden" id="sent" name="sent" value="1" />
        </p></form>';

        echo '</div>';

        $query->CloseCursor();

    } else {
        echo '<p class="texteerror">' . "Vous n'avez pas accès à cette page." . '</p>';
        echo '<p class="textewarning">' . "Vous devez être connecté pour accèder à cette page." . '</p>';
    }
} else { //Cas du traitement

    //On déclare les variables
    $mdp_erreur = NULL;
    $email_erreur1 = NULL;
    $email_erreur2 = NULL;
    $avatar_erreur = NULL;
    $avatar_erreur1 = NULL;
    $avatar_erreur2 = NULL;
    $avatar_erreur3 = NULL;

    //Encore et toujours notre belle variable $i :p
    $i = 0;
    $temps = time();
    $email = $_POST['mail'];
    $pass = ($_POST['mdp']);
    $confirm = ($_POST['confirm']);
    //Vérification du mdp
    if ($pass != $confirm || empty($confirm) || empty($pass)) {
        $mdp_erreur = '<p class="texteerror">' . "Votre mot de passe et votre confirmation diffèrent ou sont vides" . '</p>';
        $i++;
    }

    //Vérification de l'adresse email
    //Il faut que l'adresse email n'ait jamais été utilisée (sauf si elle n'a pas été modifiée)

    //On commence donc par récupérer le mail
	$id=($_SESSION['membre_id']);
    $query = $bdd->prepare('SELECT membre_mail FROM membres WHERE membre_id=:id');
    $query->bindValue(':id', $id, PDO::PARAM_INT);
    $query->execute();
    $data = $query->fetch();
    if (strtolower($data['membre_mail']) != strtolower($email)) {
        //Il faut que l'adresse email n'ait jamais été utilisée
        $query = $bdd->prepare('SELECT COUNT(*) AS nbr FROM membres WHERE membre_mail=:mail');
        $query->bindValue(':mail', $email, PDO::PARAM_STR);
        $query->execute();
        $mail_free = ($query->fetchColumn() == 0) ? 1 : 0;
        $query->CloseCursor();
        if (!$mail_free) {
            $email_erreur1 = '<p class="textewarning">' . "Votre adresse email est déjà utilisé par un membre" . '</p>';
            $i++;
        }

        //On vérifie la forme maintenant
        if (!preg_match("#^[a-z0-9A-Z._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email)) {
            $email_erreur2 = '<p class="texteerror">' . "Votre nouvelle adresse E-Mail n'a pas un format valide" . '</p>';
            $i++;
        }
    }
    //Vérification de l'avatar

    if (!empty($_FILES['membre_avatar']['size'])) {
        //On définit les variables :
        $maxsize = 100000; //Poid de l'image
        $maxwidth = 500; //Largeur de l'image
        $maxheight = 500; //Longueur de l'image
        //Liste des extensions valides
        $extensions_valides = array('jpg', 'jpeg', 'gif', 'png', 'bmp');

        if ($_FILES['membre_avatar']['error'] > 0) {
            $avatar_erreur = '<p class="texteerror">' . "Erreur lors du tranfsert de l'avatar : " . '</p>';
        }
        if ($_FILES['membre_avatar']['size'] > $maxsize) {
            $i++;
            $avatar_erreur1 = "Le fichier est trop gros :
        (" . $_FILES['membre_avatar']['size'] . " Octets
        contre " . $maxsize . " Octets)";
        }

        $image_sizes = getimagesize($_FILES['membre_avatar']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) {
            $i++;
            $avatar_erreur2 = "Image trop large ou trop longue :
        (<strong>" . $image_sizes[0] . "x" . $image_sizes[1] . " contre
        " . $maxwidth . "x" . $maxheight . ")";
        }

        $extension_upload = strtolower(substr(strrchr($_FILES['membre_avatar']['name'], '.'), 1));
        if (!in_array($extension_upload, $extensions_valides)) {
            $i++;
            $avatar_erreur3 = '<p class="texteerror">' . "Extension de l'avatar incorrecte" . '</p>';
        }
    }
    echo '<div id="mdup"><h1 class="textesimple">'."Modification d'un profil".'</h1></div>';

    if ($i == 0) { // Si $i est vide, il n'y a pas d'erreur
        if (!empty($_FILES['membre_avatar']['size'])) {
            $nomavatar = move_avatar($_FILES['membre_avatar']);
            $query = $bdd->prepare('UPDATE membres SET membre_avatar=:avatar WHERE membre_id=:id');
            $query->bindValue(':avatar', $nomavatar, PDO::PARAM_STR);
            $query->bindValue(':id', $id, PDO::PARAM_INT);
            $query->execute();
            $query->CloseCursor();
        }

        //Une nouveauté ici : on peut choisis de supprimer l'avatar
        if (isset($_POST['delete'])) {
			$id=($_SESSION['membre_id']);
            $query = $bdd->prepare('UPDATE membres SET membre_avatar=0 WHERE membre_id=:id');
            $query->bindValue(':id', $id, PDO::PARAM_INT);
            $query->execute();
            $query->CloseCursor();
        }

        echo '<h1 class="textesimple">'."Modification terminée".'</h1>';
        echo '<p class="textesimple">'."Votre profil a été modifié avec succès !".'</p>';
        echo '<p class="textesimple">'. "Cliquez ".'<a href="./index.php">'." ici ".'</a>'."
        pour revenir à la page d accueil".'</p>';
$pass=($_SESSION['membre_mdp']);
$iemail=($_SESSION['membre_mail']);
$id=($_SESSION['membre_id']);		
$query=$bdd->prepare('UPDATE membres SET membre_mdp=:mdp, membre_mail=:mail WHERE membre_id=:id');
        $query->bindValue(':mdp',$pass,PDO::PARAM_INT);
        $query->bindValue(':mail',$email,PDO::PARAM_STR);
        $query->bindValue(':id',$id,PDO::PARAM_INT);
        $query->execute();
        $query->CloseCursor();
		
    } else {
        echo '<h1 class="texteerror">Modification interrompue</h1>';
        echo '<p class="texteerror">Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>';
        echo '<p class="texteerror">' . $i . ' erreur(s)</p>';
        echo '<p class="texteerror">' . $mdp_erreur . '</p>';
        echo '<p class="texteerror">' . $email_erreur1 . '</p>';
        echo '<p class="texteerror">' . $email_erreur2 . '</p>';
        echo '<p class="texteerror">' . $avatar_erreur . '</p>';
        echo '<p class="texteerror">' . $avatar_erreur1 . '</p>';
        echo '<p class="texteerror">' . $avatar_erreur2 . '</p>';
        echo '<p class="texteerror">' . $avatar_erreur3 . '</p>';
        echo '<p class="textewarning"> Cliquez <a href="./voirprofil.php?action=modifier">ici</a> pour recommencer</p>';
    }
}
?>
Merci beaucoup pour votre attention et votre aide,
Sincèrement.