par
reverb » 21 juin 2013, 23:52
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,
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]
<?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>
[/php]
Merci à ceux qui auront la patience de m'aider :s,
Sincèrement.