Requette mySQL UPDATE et DELETE

[Fermé]
Signaler
Messages postés
263
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
9 septembre 2007
-
Messages postés
40
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
25 août 2006
-
Bonjour,
aucun de ces deux fichier ne fonctionne je ne sais pas pourquoi.
Le premier est pour faire une mise à jour du profile et le 2eme est pour suprimer le profile.
(jai retirer les identifiant exprès)

membres.php :

<?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
  { echo 'Bonjour '.$_SESSION['pseudo'].'<br/><a href="http://boss021190.free.fr/membres/deconnexion.php">Déconnexion</a>';

  //Recuperation des donné  membre
mysql_connect("localhost", "", ""); // Connexion à MySQL
mysql_select_db(""); // Sélection de la base

$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</h2></div>
<br />
<br />
<form method="post" action="membres.php" >
<label><b>Votre pseudo:</b> <input type="text" name="pseudo" value="<?php echo $donnees['pseudo']; ?>" /></label><br />
<label><b>Votre nom :</b> <input type="text" name="nom" value="<?php echo $donnees['nom']; ?>" /></label><br />
<label><b>Votre prénom:</b> <input type="text" name="prenom" value="<?php echo ($donnees['prenom']); ?>" /></label><br />
<label><b>Votre âge:</b> <input type="text" name="age" value="<?php echo $donnees['age']; ?>" /></label><br />
<label><b>Votre pays:</b> <input type="text" name="pays" value="<?php echo $donnees['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" value="<?php echo $donnees['email']; ?>" /></label><br />
<label><b>Votre site web :</b> <input type="text" name="site" value="<?php echo $donnees['site']; ?>" /></label><br />
<label><b>Vos centres d'intérêt:</b><br /> <textarea cols="20" rows="5" name="interet"><?php echo $donnees['interet']; ?></textarea></label><br />
<label><input type="submit" value="Envoyer!" /></label><br />

</form>
<?php 
 if (isset($_POST['membres']))
{
        //Si les variables contenant le pseudo, le mot de passe et l'email existent et contiennent quelque chose.
        if (isset ($_POST['pseudo'], $_POST['mot_passe'], $_POST['email'], $_POST['pays'], $_POST['age'], $_POST['nom'], $_POST['prenom'], $_POST['interet']))
        {
                //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.
                     $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 !';
                }
        else
                echo 'Erreur : vous avez oublié d\'entrer votre pseudo ou votre mot de passe ou votre adresse email !';
       

}}
mysql_close(); // Déconnexion de MySQL
?> 



suprimer.php :

<?php
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
  { echo 'Bonjour '.$_SESSION['pseudo'].'<br/><a href="http://boss021190.free.fr/membres/deconnexion.php">Déconnexion</a>';

  //Recuperation des donné  membre
mysql_connect("localhost", "loggin", "passe"); // Connexion à MySQL
mysql_select_db("baseeeeeeee"); // Sélection de la base

?>
<center><h2>Vous souhaitez réellement vous désinscrire?</h2></center><br /><br /><br />
Si oui cliquez sur le bouton ci-après:<br /> <br />
<form method="post"  action="suprimer.php">
<input type="hidden" name="pseudo" value="<?php echo $_SESSION['pseudo']; ?>" />
<input type="submit" value="Se désinscrire!" />
</form>
</center>

<?php
mysql_query(" DELETE FROM membres VALUE $pseudo ");

mysql_close(); // Déconnexion de MySQL
}
?>


Voila merci d'avance

5 réponses

Messages postés
263
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
9 septembre 2007
8
maintenant que j'ai fais quelque modification, il me dis que mon problème est a la dernière ligne celle où l'on ferme la connexion mysql


donc la jne comprend pas bien!

<?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
  { echo 'Bonjour '.$_SESSION['pseudo'].'<br/><a href="http://boss021190.free.fr/membres/deconnexion.php">Déconnexion</a>';

  //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</h2></div>
<br />
<br />
<form method="post" action="membres.php" >
<label><b>Votre pseudo:</b> <input type="text" name="pseudo" value="<?php echo $donnees['pseudo']; ?>" /></label><br />
<label><b>Votre nom :</b> <input type="text" name="nom" value="<?php echo $donnees['nom']; ?>" /></label><br />
<label><b>Votre prénom:</b> <input type="text" name="prenom" value="<?php echo ($donnees['prenom']); ?>" /></label><br />
<label><b>Votre âge:</b> <input type="text" name="age" value="<?php echo $donnees['age']; ?>" /></label><br />
<label><b>Votre pays:</b> <input type="text" name="pays" value="<?php echo $donnees['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" value="<?php echo $donnees['email']; ?>" /></label><br />
<label><b>Votre site web :</b> <input type="text" name="site" value="<?php echo $donnees['site']; ?>" /></label><br />
<label><b>Vos centres d'intérêt:</b><br /> <textarea cols="20" rows="5" name="interet"><?php echo $donnees['interet']; ?></textarea></label><br />
<label><input type="submit" value="Envoyer!" /></label><br />

</form>
<?php 

        //Si les variables contenant le pseudo, le mot de passe et l'email existent et contiennent quelque chose.
        if (isset ($_POST['pseudo'], $_POST['mot_passe'], $_POST['email'], $_POST['pays'], $_POST['age'], $_POST['nom'], $_POST['prenom'], $_POST['interet']))
        {
                //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 !';
                }
        else
                echo 'Erreur : vous avez oublié d\'entrer votre pseudo ou votre mot de passe ou votre adresse email !';
       

        }
}
mysql_close(); // Déconnexion de MySQL
?> 


pour voir la page qui dis lerreur: http://boss021190.free.fr/membres/membres.php
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
54
essaie en formant tes "else" comme les "if"...
C'est à dire :
if
{

}
else
{

}


pour t'y retrouver (un peu) plus facilement, dans des codes pareils, essaie de mettre les conditions, les unes en dessous des autre:
if
{

  if
  {

  }
  else
  {

  }

}
else
{

}
tu devrais pouvoir mieux t'y retrouver je pense et tiens moi au courant pour voir si ça fonctionne..

ps: je faisais la même 'erreur' avant, ça ne change rien au code, mais
<br>
suffit. ;)
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
54
regarde, ce que toi tu as écrit, c'est ça:

<?php

session_start();


if (isset($_SESSION['logged']) && $_SESSION['logged'] == false)
{

}
else
{
ouverture de ta BDD
}
mysql_close
?>


d'après moi ton problème pourrait venir de là..

il faudrait fermer la BDD avant de fermer le else...
Messages postés
40
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
25 août 2006
10
heu si ça ne marche pas ce ne serait pas à cause de tes requêtes UPDATE et DELETE qui ne sont pas vraiment conformes.

un petit tour ici sqlmaj
Messages postés
788
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
15 juin 2010
54
salut

bon alors déjà dans tes premières lignes.... "=== false", tu dois enlever un "=".

ensuite, à moins que j'ai mal regardé, dis le moi, c'est quoi ta variable??
 if (isset($_POST['membres']))
{

je n'ai pas vu de variable membres, donc à cet endroit là, je te conseille de mettre un nom à ton bouton submit et d'en faire une variable.
comme ça:
<input type="submit" name="mise_a_jour" value="Envoyer">


et à la place de la variable "membres"(que je n'ai pas ue), tu vérifies si la variable mise_a_jour existe et qu'elle contient Envoyer.

pour ta deuxième page je te conseillerai de plus préciser à ta BDD ce que tu veux supprimer.
DELETE FROM membres WHERE pseudo='"'.$pseudo.'"', par exemple

a+