Création d'un espace profil
Résolu
reverb94
Messages postés
106
Date d'inscription
Statut
Membre
Dernière intervention
-
reverb94 Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
reverb94 Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
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 :
Je suis totalement perdu :(, un coup de main ne serais pas de refus :s,
Merci pour votre attention et votre aide,
Sincèrement.
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.
A voir également:
- Création d'un espace profil
- Espace insécable - Guide
- Espace de stockage gmail plein - Guide
- Voir qui regarde mon profil facebook - Guide
- Qui regarde mon profil instagram - Guide
- Creation compte gmail - Guide
2 réponses
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 :)
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 :)
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 :).
Il doit t'en manqué une ou alors tu en as une en trop !