reverb94
Messages postés106Date d'inscriptionjeudi 7 mars 2013StatutMembreDernière intervention 7 janvier 2014
-
7 juin 2013 à 15:08
reverb94
Messages postés106Date d'inscriptionjeudi 7 mars 2013StatutMembreDernière intervention 7 janvier 2014
-
8 juin 2013 à 16:53
Bonjour à tous,
J'ai précédemment suivi un tutoriel me permettant de créer un espace profil pour les membres inscrit, et connecté, mais je suis confronté a quelque petit soucis du aux adaptation que j'ai du faire ( erreur de syntaxe sur la fin de mon code, je ne vois pas comment corriger ça :/).
Voici le code de ma page de code, un peu long :/.
voirprofil.php :
<?php session_start(); ?>
<?php
require_once("connexioninscription.inc.php");
$_GET['membre']=$_SESSION['membre_id'];
$action = isset($_GET['action'])?htmlspecialchars($_GET['action']):'consulter';
$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="montitre" 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
$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'<h1 class="textesimple">Profil de '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</h1>';
echo '<div id="infosmembre">';
echo '<p class="textesimple">'."Votre pseudo : ".stripslashes(htmlspecialchars($data['membre_pseudo'])).'</p>';
echo'<img src="./images/avatars/'.$data['membre_avatar'].'"
alt="Votre avatar" />';
echo'<p class="textesimple">'."Votre adresse mail courante : ".'<a href="mailto:'.stripslashes($data['membre_mail']).'">'.stripslashes(htmlspecialchars($data['membre_mail'])).'</a></p>';
echo'<p class="textesimple">'."Votre adresse Msn : ".'<a href="mailto:'.stripslashes($data['membre_msn']).'">'.stripslashes(htmlspecialchars($data['membre_msn'])).'</a></p>';
echo'<p class="textesimple">'."Votre adresse Yahoo : ".'<a href="mailto:'.stripslashes($data['membre_yahoo']).'">'.stripslashes(htmlspecialchars($data['membre_yahoo'])).'</a></p>';
echo '<p class="textesimple">'."Votre site web : ".'<a href="'.stripslashes($data['membre_siteweb']).'">'.stripslashes(htmlspecialchars($data['membre_siteweb'])).'</a></p>';
echo'<p class="textesimple">'."Votre adresse Facebook : ".'<a href="'.stripslashes($data['membre_facebook']).'">'.stripslashes(htmlspecialchars($data['membre_facebook'])).'</a></p>';
echo'<p class="textesimple">'."Votre adresse Tumblr : ".'<a href="'.stripslashes($data['membre_tumblr']).'">'.stripslashes(htmlspecialchars($data['membre_tumblr'])).'</a></p>';
echo'<p class="textesimple">'."Votre adresse Twitter : ".'<a href="'.stripslashes($data['membre_twitter']).'">'.stripslashes(htmlspecialchars($data['membre_twitter'])).'</a></p>';
echo'<p class="textesimple">'."Votre adresse Flickr : ".'<a href="'.stripslashes($data['membre_flickr']).'">'.stripslashes(htmlspecialchars($data['membre_flickr'])).'</a></p>';
echo'<p class="textesimple">'."Votre adresse Fotolog : ".'<a href="'.stripslashes($data['membre_fotolog']).'">'.stripslashes(htmlspecialchars($data['membre_fotolog'])).'</a></p>';
echo'<p class="textesimple">'."Votre adresse Pinterest : ".'<a href="'.stripslashes($data['membre_pinterest']).'">'.stripslashes(htmlspecialchars($data['membre_pinterest'])).'</a></p>';
echo '<p class="textesimple">'."Ce membre est inscrit depuis le ".dateUS2FR($data['membre_inscription']).'</p>';
echo '<p class="textesimple">'."Vous avez posté : ".$data['membre_post']." message(s)".'</p>';
echo '<p class="textesimple">'."Localisation : ".stripslashes(htmlspecialchars($data['membre_localisation'])).'</p>';
echo '</div>';
$query->CloseCursor();
break;
//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 ($id==0) erreur(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 '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Modification du profil';
echo '<h1>Modifier son profil</h1>';
echo '<form method="post" action="voirprofil.php?action=modifier" enctype="multipart/form-data">
<fieldset><legend>Identifiants</legend>
Pseudo : <strong>'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</strong><br />
<label for="password">Nouveau mot de Passe :</label>
<input type="password" name="password" id="password" /><br />
<label for="confirm">Confirmer le mot de passe :</label>
<input type="password" name="confirm" id="confirm" />
</fieldset>
<fieldset><legend>Contacts</legend>
<label for="email">Votre adresse E_Mail :</label>
<input type="text" name="email" id="email"
value="'.stripslashes($data['membre_mail']).'" /><br />
<label for="msn">Votre adresse MSN :</label>
<input type="text" name="msn" id="msn"
value="'.stripslashes($data['membre_msn']).'" /><br />
<label for="yahoo">Votre adresse Yahoo :</label>
<input type="text" name="yahoo" id="yahoo"
value="'.stripslashes($data['membre_yahoo']).'" /><br />
<label for="facebook">Votre adresse Facebook :</label>
<input type="text" name="facebook" id="facebook"
value="'.stripslashes($data['membre_facebook']).'" /><br />
<label for="tumblr">Votre adresse Tumblr :</label>
<input type="text" name="tumblr" id="tumblr"
value="'.stripslashes($data['membre_tumblr']).'" /><br />
<label for="twitter">Votre adresse Twitter :</label>
<input type="text" name="twitter" id="twitter"
value="'.stripslashes($data['membre_twitter']).'" /><br />
<label for="pinterest">Votre adresse Pinterest :</label>
<input type="text" name="pinterest" id="pinterest"
value="'.stripslashes($data['membre_twitter']).'" /><br />
<label for="fotolog">Votre adresse Fotolog :</label>
<input type="text" name="fotolog" id="fotolog"
value="'.stripslashes($data['membre_fotolog']).'" /><br />
<label for="googleplus">Votre adresse Googleplus :</label>
<input type="text" name="googleplus" id="googleplus"
value="'.stripslashes($data['membre_googleplus']).'" /><br />
<label for="flickr">Votre adresse Flickr :</label>
<input type="text" name="flickr" id="flickr"
value="'.stripslashes($data['membre_flickr']).'" /><br />
<label for="website">Votre site web :</label>
<input type="text" name="website" id="website"
value="'.stripslashes($data['membre_siteweb']).'" /><br />
</fieldset>
<fieldset><legend>Informations supplémentaires</legend>
<label for="localisation">Localisation :</label>
<input type="text" name="localisation" id="localisation"
value="'.stripslashes($data['membre_localisation']).'" /><br />
</fieldset>
<fieldset><legend>Profil sur le forum</legend>
<label for="avatar">Changer votre avatar :</label>
<input type="file" name="avatar" id="avatar" />
(Taille max : 10 ko)<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" />
<br /><br />
<label for="signature">Signature :</label>
<textarea cols="40" rows="4" name="signature" id="signature">
'.stripslashes($data['membre_signature']).'</textarea>
<br /><br />
<label for="profession">Profession :</label>
<textarea cols="40" rows="4" name="profession" id="profession">
'.stripslashes($data['membre_profession']).'</textarea>
<br /><br />
<label for="biographie">Biographie :</label>
<textarea cols="40" rows="4" name="biographie" id="biographie">
'.stripslashes($data['membre_biographie']).'</textarea>
</fieldset>
<p>
<input type="submit" value="Modifier son profil" />
<input type="hidden" id="sent" name="sent" value="1" />
</p></form>';
$query->CloseCursor();
}
else //Cas du traitement
{
//On déclare les variables
$mdp_erreur = NULL;
$email_erreur1 = NULL;
$email_erreur2 = 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['email'];
$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['website'];
$profession=$_POST['profession'];
$biographie=$_POST['biographie'];
$localisation=$_POST['localisation'];
$pass=($_POST['password']);
$confirm=($_POST['confirm']);
//Vérification du mdp
if ($pass != $confirm || empty($confirm) || empty($pass))
{
$mdp_erreur = "Votre mot de passe et votre confirmation diffèrent ou sont vides";
$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 = "Votre adresse email est déjà utilisé par un membre";
$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 = "Votre nouvelle adresse E-Mail n'a pas un format valide";
$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 = "Votre nouvelle adresse MSN n'a pas un format valide";
$i++;
}
//Vérification de la signature
if (strlen($signature) > 200)
{
$signature_erreur = "Votre nouvelle signature est trop longue";
$i++;
}
//Vérification de l'avatar
if (!empty($_FILES['avatar']['size']))
{
//On définit les variables :
$maxsize = 30072; //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['avatar']['error'] > 0)
{
$avatar_erreur = "Erreur lors du tranfsert de l'avatar : ";
}
if ($_FILES['avatar']['size'] > $maxsize)
{
$i++;
$avatar_erreur1 = "Le fichier est trop gros :
(<strong>".$_FILES['avatar']['size']." Octets</strong>
contre <strong>".$maxsize." Octets</strong>)";
}
$image_sizes = getimagesize($_FILES['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['avatar']['name'], '.') ,1));
if (!in_array($extension_upload,$extensions_valides) )
{
$i++;
$avatar_erreur3 = "Extension de l'avatar incorrecte";
}
}
}
break;
default; //Si jamais c'est aucun de ceux-là c'est qu'il y a eu un problème :o
echo'<p>Cette action est impossible</p>';
} //Fin du switch
echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Modification du profil';
echo '<h1>Modification d\'un profil</h1>';
if ($i == 0) // Si $i est vide, il n'y a pas d'erreur
{
if (!empty($_FILES['avatar']['size']))
{
$nomavatar=move_avatar($_FILES['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=:sign, membre_localisation=:loc, 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(':sign',$signature,PDO::PARAM_STR);
$query->bindValue(':loc',$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>
Je suis totalement perdu :(, un coup de main ne serais pas de refus :s,
Merci pour votre attention et votre aide,
Sincèrement.
jeremy.s
Messages postés1226Date d'inscriptionlundi 28 mars 2011StatutMembreDernière intervention 2 septembre 201379 7 juin 2013 à 15:16
Salut !
Alors ce qui pourait être cool, c'est que tu nous dise où ya des erreurs ! Pcq effectivement, le code est long ^^
Donc met les messages d'erreurs et les lignes correspondantes ;-)
Donc j'ai pas tout lu, mais première remarque :
$_GET['membre']=$_SESSION['membre_id'];
$action = isset($_GET['action'])?htmlspecialchars($_GET['action']):'consulter';
$membre = isset($_GET['membre'])?(int) $_GET['membre']:'';
A mon avis ca ne fonctionne pas, passe par une variable intermédiaire :)
reverb94
Messages postés106Date d'inscriptionjeudi 7 mars 2013StatutMembreDernière intervention 7 janvier 20141 7 juin 2013 à 16:43
Effectivement -_-' si j'oublie de préciser ou sa plante ^^'...
C'est une erreur de syntaxe tout à la fin de mon code :
action=modifier">ici</a> pour recommencer</p>';
398. }
399. }
400. break;
401.
402. default;//Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
403. echo'<p class="texteerror">Cette action est impossible</p>';
404. }
405. //Fin du switch
406. ?>
407. </div>
408. <?php include("footer.inc.php"); ?>
409. </div>
410. </body>
411. </html>
j'utilise Dreamweaver qui m'indique deux erreurs de ligne,
ligne '399' et ligne '404'.
Merci pour ton aide et ton attention jeremy.s,
Sincèrement :).
jeremy.s
Messages postés1226Date d'inscriptionlundi 28 mars 2011StatutMembreDernière intervention 2 septembre 201379 7 juin 2013 à 16:48
Ah bah tu as le droit de compter des acolades ;-)
Il doit t'en manqué une ou alors tu en as une en trop !
reverb94
Messages postés106Date d'inscriptionjeudi 7 mars 2013StatutMembreDernière intervention 7 janvier 20141 8 juin 2013 à 12:26
Même après les avoirs compté 3, 4 fois de suite je ne trouve aucune erreur de :((
7 juin 2013 à 16:43
C'est une erreur de syntaxe tout à la fin de mon code :
j'utilise Dreamweaver qui m'indique deux erreurs de ligne,
ligne '399' et ligne '404'.
Merci pour ton aide et ton attention jeremy.s,
Sincèrement :).
7 juin 2013 à 16:48
Il doit t'en manqué une ou alors tu en as une en trop !
8 juin 2013 à 12:26