Upgrade ne fonctionne toujours pas

boss0211 Messages postés 264 Statut Membre -  
Darshu Messages postés 303 Statut Membre -
bonjour,
j'ai remodifier plein de chose mais lorsque je veux UPGRADER un compte membre cela ne fonctionne pas! que faire???

voici le script j'ai chercher relu le cour mais je ne trouve toujours pas!
merci de bien vouloir m'aider

<?php
//Ne pas oublier de mettre le session_start()
session_start();

//On vérifie que le membre est connecté.
if (isset($_SESSION['logged']) && $_SESSION['logged'] == false)
{
echo 'Erreur : vous devez être connecté pour accéder à cette page !<br /> Allez <a href="index.php">ici</a> pour vous connecter.';
  
}
else
  { 

  //Inclusion du fichier contenant les identifiants de connexion à la base de données.
require("config.inc.php");

//Connexion à la base de données.
mysql_connect($host, $username, $password);
mysql_select_db($bdd_name);

$reponse = mysql_query("SELECT pseudo, nom, prenom, age, pays, email, site, interet FROM membres WHERE pseudo='" . $_SESSION['pseudo'] . "'");

$donnees = mysql_fetch_array($reponse);
?>
<div style="text-align:center;"><h2>Votre compte <?php echo  $_SESSION['pseudo']; ?></h2></div>
<br />
<br />
<form method="post" action="modif.php" >
<label><b>Votre pseudo:</b> <input type="text" name="pseudo"  /></label><br />
<label><b>Votre nom :</b> <input type="text" name="nom" /></label><br />
<label><b>Votre prénom:</b> <input type="text" name="prenom" /></label><br />
<label><b>Votre âge:</b> <input type="text" name="age" /></label><br />
<label><b>Votre pays:</b> <input type="text" name="pays"  /></label><br />
<label><b>Changer de mot de passe:</b> <input type="text" name="mot_passe"  /></label><br />
<label><b>Votre adresse e-mail:</b> <input size="25" type="text" name="email"/></label><br />
<label><b>Votre site web :</b> <input type="text" name="site" /></label><br />
<label><b>Vos centres d'intérêt:</b><br /> <textarea cols="20" rows="5" name="interet"></textarea></label><br />
<label><input type="submit" value="Envoyer!" /></label><br />

</form>
<?php 

       
                //Si le pseudo est supérieur à 3 caractères et inférieur à 35 caractères.
                if (strlen(trim($_POST['pseudo'])) > 3 && strlen(trim($_POST['pseudo'])) < 35)
                {
                        //Si le mot de passe est supérieur à 4 caractères.
                        if (strlen(trim($_POST['mot_passe'])) > 4)
                        {
                                //Mesure de sécurité.
                                $pseudo = htmlspecialchars($_POST['pseudo']);
                                $mot_passe = htmlspecialchars($_POST['mot_passe']);
                                $email = htmlspecialchars($_POST['email']);
                                $nom = htmlspecialchars($_POST['nom']);
                                $prenom = htmlspecialchars($_POST['prenom']);
                                $age = htmlspecialchars($_POST['age']);
                                $pays = htmlspecialchars($_POST['pays']);
                                $mot_passe = htmlspecialchars($_POST['mot_passe']);
                                $site = htmlspecialchars($_POST['site']);
                                $interet = htmlspecialchars($_POST['interet']);

                                //On vérifie que le pseudo n'existe pas.
              if( $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'"))
                                    {
                                if (mysql_result($sql, 1, 'nb_pseudo') == 1)
                                {
                                     //Hashage du mot de passe avec md5().
                                     $mot_passe = md5($mot_passe);

                                                        
                                    
                                     
                                         //On éxécute la requête qui enregistre un nouveau membre.
                                         mysql_query("UPDATE membres (pseudo, nom, prenom, age, pays, mot_passe, email, site, interet) SET ('".$pseudo."','".$nom."','".$prenom."', '".$age."', '".$pays."', '".$mot_passe."', '".$email."', '".$site."', '".$interet."') WHERE pseudo='" . $_SESSION['pseudo'] . "'");
                                         echo 'Message : votre compte a bien été mise à jour!';
                                }             
                            else 
                                   echo 'Erreur : le pseudo existe déjà !';
                        }    
                        else
                                echo 'Erreur : le mot de passe est trop court !';
                        }
                else
                        echo 'Erreur : le pseudo est soit trop court, soit trop long !';
                }
       
        
        mysql_close(); // Déconnexion de MySQL
}//on referme la boucle qui est avant le script xHTML      

?> 
<center><a href="http://boss021190.free.fr/membres/membres.php">Retour</a>
<br />
<br />
<a href="http://boss021190.free.fr">&copy; Annuaire boss021190</a></center>
A voir également:

6 réponses

Darshu Messages postés 303 Statut Membre 64
 
Salut.

C'est ton if (mysql_result($sql, 1, 'nb_pseudo') == 1) que je ne comprends pas, surtout qu'après dans ton else tu mets que le pseudo existe déja ... C'est compliqué tous tes tests, pour pas grand chose finalement ! En plus, ton count ne va pas compter le nombre de résultats (voir si il y a déja un enregistrement correspondant aux critères du WHERE), mais ajouter chaque colonne ...

Essaie plutôt ça pour tester tes enregistrements :
$result = mysql_query($query) or die("Erreur = ".mysql_error());

if (mysql_num_rows($result)<1)
{
   UPDATE des données
}
else
{
   Message d'erreur
}
0
boss0211 Messages postés 264 Statut Membre 8
 
je ne vois pas ou je dois mettre le script donner
0
Darshu Messages postés 303 Statut Membre 64
 
A la place de ton mysql_query avec COUNT justement ... Tu as déja fait ta requête avant, donc insère juste ce que je t'ai mis au bon endroit ...

0
boss0211 Messages postés 264 Statut Membre 8
 
la franchement je ne voie pas surtout qu'il y a des variable non existante au script enfin bon c'est peut etre moi qui déconne mais bon
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
boss0211 Messages postés 264 Statut Membre 8
 
Pourquoi mon UPGRADE ne fonctionne pas ??

et je voudrais savoir s'il existe des fonction pour:
1. vérifier si le pseudo existe déjà
2. Ne changer que les champs rempli dans un formulaire

MERCI DAVANCE!!

<?php
//Ne pas oublier de mettre le session_start()
session_start();

//On vérifie que le membre est connecté.
if (isset($_SESSION['logged']) && $_SESSION['logged'] == false)
{
echo 'Erreur : vous devez être connecté pour accéder à cette page !<br /> Allez <a href="index.php">ici</a> pour vous connecter.';
  
}
else
  { 
//Identifiants de connexion à la base de données.
require("/mnt/116/sdc/d/0/boss021190/config.inc.php");
//Connexion à la base de données.
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);

$reponse = mysql_query("SELECT pseudo, nom, prenom, age, pays, email, site, interet FROM membres WHERE pseudo='" . $_SESSION['pseudo'] . "'");

$donnees = mysql_fetch_array($reponse);
?>
<div style="text-align:center;"><h2>Votre compte <?php echo  $_SESSION['pseudo']; ?></h2></div>
<br />
<br />
<form method="post" action="modif.php" >
<label><b>Votre pseudo:</b> <input type="text" name="pseudo"  /></label><br />
<label><b>Votre nom :</b> <input type="text" name="nom" /></label><br />
<label><b>Votre prénom:</b> <input type="text" name="prenom" /></label><br />
<label><b>Votre âge:</b> <input type="text" name="age" /></label><br />
<label><b>Votre pays:</b> <input type="text" name="pays"  /></label><br />
<label><b>Changer de mot de passe:</b> <input type="text" name="mot_passe"  /></label><br />
<label><b>Votre adresse e-mail:</b> <input size="25" type="text" name="email"/></label><br />
<label><b>Votre site web :</b> <input type="text" name="site" /></label><br />
<label><b>Vos centres d'intérêt:</b><br /> <textarea cols="20" rows="5" name="interet"></textarea></label><br />
<label><input type="submit" value="Envoyer!" /></label><br />

</form>
<?php 

       
                
                       
                                //Mesure de sécurité.
                                $pseudo = htmlspecialchars($_POST['pseudo']);
                                $mot_passe = htmlspecialchars($_POST['mot_passe']);
                                $email = htmlspecialchars($_POST['email']);
                                $nom = htmlspecialchars($_POST['nom']);
                                $prenom = htmlspecialchars($_POST['prenom']);
                                $age = htmlspecialchars($_POST['age']);
                                $pays = htmlspecialchars($_POST['pays']);
                                $mot_passe = htmlspecialchars($_POST['mot_passe']);
                                $site = htmlspecialchars($_POST['site']);
                                $interet = htmlspecialchars($_POST['interet']);

              
               
                                     //Hashage du mot de passe avec md5().
                                     $mot_passe = md5($mot_passe);

                                                        
                                    
                                     
                                         //On éxécute la requête qui enregistre un nouveau membre.
                                         $up=mysql_query("UPDATE membres SET pseudo='" . $pseudo . "', nom='" . $nom . "', prenom='".$prenom."', age='".$age."', pays='".$pays."', mot_passe='".$mot_passe."', email='".$email."', site='".$site."', interet='".$interet."'   WHERE pseudo='" . $_SESSION['pseudo'] . "'");
						    
                              if($up == true)
                                   {
                                   echo '<center>Votre compte a bien été mise à jour! <br /><a href="http://boss021190.free.fr/membres/membres.php">Retour</a><center>';
                                       } 
                              else{ 
							  echo '<center>un problème est survenue lors de la mise à jour. Veuillez recommencer!</center>';
							  }
                             
        
	mysql_close(); // Déconnexion de MySQL
}//on referme la boucle qui est avant le script xHTML		

?> 

<br />
<br />
<a href="http://boss021190.free.fr">&copy; Annuaire boss021190</a></center>
0
Darshu Messages postés 303 Statut Membre 64
 
Arrête de remettre ton code à chaque fois, ça sert à rien on l'a déja ...

Pour le script qui teste si il y a déja un membre, je viens de te le filer ! Et enfin pour ne mettre que les champs déja renseigné par fomulaire, suffit de faire if (isset($_POST['var'])) et de concaténer ton UPDATE en fonction ...

Et tu ne vois pas où mettre le code que je t'ai filé ? Pourtant je t'ai même indiqué ce qu'il devrait y avoir comme reste du code dans les accolades, alors si tu sais pas ce que fais ta page ... Faut encore te pondre un code tout fait qui marche tout seul ?
0