Page 1 sur 2

espace membre

Posté : 07 janv. 2012, 20:38
par Rémi2000
mon espace membre m'affiche
Une erreur est survenue lors des modifications

voici mon code
<?php 
 include('config.php'); 
 ?> 
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 <html xmlns="http://www.w3.org/1999/xhtml"> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" /> 
 <title>Modifier ses informations personnelles</title> 
 </head> 
 <body> 
 <div class="header"> 
 <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a> 
 </div> 
 <?php 
 //On verifie si lutilisateur est connecte 
 if(isset($_SESSION['username'])) 
 { 
 //On verifie si le formulaire a ete envoye 
 if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['avatar'])) 
 { 
 //On enleve lechappement si get_magic_quotes_gpc est active 
 if(get_magic_quotes_gpc()) 
 { 
 $_POST['username'] = stripslashes($_POST['username']); 
 $_POST['password'] = stripslashes($_POST['password']); 
 $_POST['passverif'] = stripslashes($_POST['passverif']); 
 $_POST['email'] = stripslashes($_POST['email']); 
 $_POST['avatar'] = stripslashes($_POST['avatar']); 
 } 
 //On verifie si le mot de passe et celui de la verification sont identiques 
 if($_POST['password']==$_POST['passverif']) 
 { 
 //On verifie si le mot de passe a 6 caracteres ou plus 
 if(strlen($_POST['password'])>=6) 
 { 
 //On verifie si lemail est valide 
 if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email'])) 
 { 
 //On echape les variables pour pouvoir les mettre dans une requette SQL 
 $username = mysql_real_escape_string($_POST['username']); 
 $password = mysql_real_escape_string($_POST['password']); 
 $email = mysql_real_escape_string($_POST['email']); 
 $avatar = mysql_real_escape_string($_POST['avatar']); 
 //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis 
 $dn = mysql_query('select count(*) from users where username="'.$username.'"'); 
 //On verifie si le pseudo a ete modifie pour un autre et que celui-ci n'est pas deja utilise 
 if($dn['nb']==0 or $_POST['username']==$_SESSION['username']) 
 { 
 //On modifie les informations de lutilisateur avec les nouvelles 
 if(mysql_query('update users set username="'.$username.'", password="'.$password.'", email="'.$email.'", avatar="'.$avatar.'" where id="'.mysql_real_escape_string($_SESSION['userid']).'"')) 
 { 
 //Si ca a fonctionne, on naffiche pas le formulaire 
 $form = false; 
 //On supprime les sessions username et userid au cas ou il aurait modifie son pseudo 
 unset($_SESSION['username'], $_SESSION['userid']); 
 ?> 
 <div class="message">Vos informations ont bien &eacute;t&eacute; modifif&eacute;e. Vous devez vous reconnecter.<br /> 
 <a href="connexion.php">Se connecter</a></div> 
 <?php 
 } 
 else 
 { 
 //Sinon on dit quil y a eu une erreur 
 $form = true; 
 $message = 'Une erreur est survenue lors des modifications.'; 
 } 
 } 
 else 
 { 
 //Sinon, on dit que le pseudo voulu est deja pris 
 $form = true; 
 $message = 'Un autre utilisateur utilise d&eacute;j&agrave; le nom d\'utilisateur que vous d&eacute;sirez utiliser.'; 
 } 
 } 
 else 
 { 
 //Sinon, on dit que lemail nest pas valide 
 $form = true; 
 $message = 'L\'email que vous avez entr&eacute; n\'est pas valide.'; 
 } 
 } 
 else 
 { 
 //Sinon, on dit que le mot de passe nest pas assez long 
 $form = true; 
 $message = 'Le mot de passe que vous avez entr&eacute; contien moins de 6 caract&egrave;res.'; 
 } 
 } 
 else 
 { 
 //Sinon, on dit que les mots de passes ne sont pas identiques 
 $form = true; 
 $message = 'Les mot de passe que vous avez entr&eacute; ne sont pas identiques.'; 
 } 
 } 
 else 
 { 
 $form = true; 
 } 
 if($form) 
 { 
 //On affiche un message sil y a lieu 
 if(isset($message)) 
 { 
 echo '<strong>'.$message.'</strong>'; 
 } 
 //Si le formulaire a deja ete envoye on recupere les donnes que lutilisateur avait deja insere 
 if(isset($_POST['username'],$_POST['password'],$_POST['email'])) 
 { 
 $username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); 
 if($_POST['password']==$_POST['passverif']) 
 { 
 $password = htmlentities($_POST['password'], ENT_QUOTES, 'UTF-8'); 
 } 
 else 
 { 
 $password = ''; 
 } 
 $email = htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8'); 
 $avatar = htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8'); 
 } 
 else 
 { 
 //Sinon, on affiche les donnes a partir de la base de donnee 
 $dnn = mysql_fetch_array(mysql_query('select username,password,email,avatar from users where username="'.$_SESSION['username'].'"')); 
 $username = htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); 
 $password = htmlentities($dnn['password'], ENT_QUOTES, 'UTF-8'); 
 $email = htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8'); 
 $avatar = htmlentities($dnn['avatar'], ENT_QUOTES, 'UTF-8'); 
 } 
 //On affiche le formulaire 
 ?> 
 <div class="content"> 
 <form action="edit_infos.php" method="post"> 
 Vous pouvez modifier vos informations:<br /> 
 <div class="center"> 
 <label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo $username; ?>" /><br /> 
 <label for="password">Mot de passe<span class="small">(6 caract&egrave;res min.)</span></label><input type="password" name="password" id="password" value="<?php echo $password; ?>" /><br /> 
 <label for="passverif">Mot de passe<span class="small">(v&eacute;rification)</span></label><input type="password" name="passverif" id="passverif" value="<?php echo $password; ?>" /><br /> 
 <label for="email">Email</label><input type="text" name="email" id="email" value="<?php echo $email; ?>" /><br /> 
 <label for="avatar">Image perso<span class="small">(facultatif)</span></label><input type="text" name="avatar" id="avatar" value="<?php echo $avatar; ?>" /><br /> 
 <input type="submit" value="Envoyer" /> 
 </div> 
 </form> 
 </div> 
 <?php 
 } 
 } 
 else 
 { 
 ?> 
 <div class="message">Pour acc&eacute;der &agrave; cette page, vous devez &ecirc;tre connect&eacute;.<br /> 
 <a href="connexion.php">Se connecter</a></div> 
 <?php 
 } 
 ?> 
 <div class="foot"><a href="<?php echo $url_home; ?>">Retour &agrave; l'accueil</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div> 
 </body> 
 </html>
SVP aidez moi et je vous remercie

Re: espace membre

Posté : 07 janv. 2012, 20:47
par moogli
salut,

bonjour, svp / merci c'est en option ?

Ta requete SQL ligne44 est foireuse, modifie le message d'erreur (ligne56 afin d'avoir le message fournit par mysql mysql_error() )



@+

Re: espace membre

Posté : 07 janv. 2012, 20:57
par Rémi2000
je ne comprend pas il faut modifier quoi si tu pouvais l'expliqué STP je te serai reconnaissant

Re: espace membre

Posté : 07 janv. 2012, 21:04
par moogli
$message = 'Erreur SQL : '.mysql_error(); ligne 56

pour info, les chaines de caractères sql sont délimlitées part des ' et non des "

les nombres ne doivent pas être entourés par des ' (ou ") car ce ne sont pas de chaines de caractère

@+

Re: espace membre

Posté : 07 janv. 2012, 21:17
par Rémi2000
merci ça marche

Re: espace membre

Posté : 07 janv. 2012, 22:02
par Rémi2000
mais maintenant je voudrai afficher l'email mais je n'arrive pas
$req = mysql_query('select email from users');
$donnees = $req
if (!$donnees) {
echo "erreur";
else 
echo $donnees;
}
?>
et easyPHP m'affiche

Parse error: syntax error, unexpected T_IF in C:\Program Files\EasyPHP-5.3.8.0\www\Espace_Membre\index.php on line 20
SVP aidez moi je suis sur que s'est une petite betise mais je ne vois pas se que s'est merci d'avance
s'est bon j'ai réussi a régler le probleme mais j'ai un autre soucis
voici le code
<?php
//On affiche un message de bienvenue, si lutilisateur est connecte, on affiche son pseudo
$base = mysql_connect ('localhost', 'root', '');
					mysql_select_db ('users', $base);
$reponse =mysql_query('select email from users');

if (!$reponse) {

echo "erreur";
}

else
{
echo $reponse;
}
?>
et voici se que m'affiche mon espace membre Resource id #7

Re: espace membre

Posté : 07 janv. 2012, 23:23
par xTG
Un peu de lecture sur le sujet : http://phpdebutant.org/article66.php ;)

Re: espace membre

Posté : 08 janv. 2012, 09:10
par Rémi2000
merci mais si tu pouvez me dire comment enregistrer une image par apport à l'id (image de profil) je te serai très reconnaissant

Re: espace membre

Posté : 08 janv. 2012, 09:48
par xTG
http://antoine-herault.developpez.com/t ... hp/upload/ :)
On trouve tout un tas de cours sur internet concernant le PHP...

Re: espace membre

Posté : 08 janv. 2012, 10:41
par Rémi2000
merci mais je ne sais pas pourquoi mon fichier ne se télécharge pas
<form method="POST" action="upload.php" enctype="multipart/form-data">
     <!-- On limite le fichier à 100Ko -->
     <input type="hidden" name="MAX_FILE_SIZE" value="100000">
     Fichier : <input type="file" name="avatar">
     <input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
<?php
if(isset($_FILES['avatar']))
{ 
     $dossier = 'upload/';
     $fichier = basename($_FILES['avatar']['name']);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
?>
<?php
//On fait un tableau contenant les extensions autorisées.
//Comme il s'agit d'un avatar pour l'exemple, on ne prend que des extensions d'images.
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
// récupère la partie de la chaine à partir du dernier . pour connaître l'extension.
$extension = strrchr($_FILES['avatar']['name'], '.');
//Ensuite on teste
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
?> 
<?php
// taille maximum (en octets)
$taille_maxi = 100000;
//Taille du fichier
$taille = filesize($_FILES['avatar']['tmp_name']);
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
?>
<?php
$fichier = strtr($fichier,
     'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
     'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
//On remplace les lettres accentutées par les non accentuées dans $fichier.
//Et on récupère le résultat dans fichier

//En dessous, il y a l'expression régulière qui remplace tout ce qui n'est pas une lettre non accentuées ou un chiffre
//dans $fichier par un tiret "-" et qui place le résultat dans $fichier.
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
?>

Re: espace membre

Posté : 08 janv. 2012, 13:29
par xTG
Comprends-tu ce que tu fais ?
Parce que là cela n'a aucun sens ton script. Tu upload le fichier et seulement ensuite tu fais tes vérifications (type, taille, ect).
ne se télécharge pas
As-tu un message qui apparait ?

Re: espace membre

Posté : 08 janv. 2012, 20:43
par Rémi2000
il m'affiche Warning: move_uploaded_file(upload/cheval.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files\EasyPHP-5.3.8.0\www\Espace_Membre\upload.php on line 12

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Program Files\EasyPHP-5.3.8.0\tmp\phpE6E8.tmp' to 'upload/cheval.jpg' in C:\Program Files\EasyPHP-5.3.8.0\www\Espace_Membre\upload.php on line 12
Echec de l'upload !

Re: espace membre

Posté : 08 janv. 2012, 23:24
par xTG
Le dossier upload n'existe pas. Il le créé pas tout seul, faut que tu lui donnes un coup de main. ;)

Re: espace membre

Posté : 09 janv. 2012, 06:10
par Rémi2000
je l'est fait mais ça me marque
Upload effectué avec succès !
Warning: filesize() [function.filesize]: stat failed for C:\Program Files\EasyPHP-5.3.8.1\tmp\phpD6A.tmp in C:\Program Files\EasyPHP-5.3.8.1\www\Espace_Membre\upload.php on line 38

Re: espace membre

Posté : 09 janv. 2012, 07:58
par xTG
La taille du fichier se trouve dans l'array $_FILES, pas besoin d'utiliser filesize.
Fais un var_dump($_FILES) tu trouveras le bon index.