KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Samedi 17 mai 2008 - 14:26:42

Requette mySQL UPDATE et DELETE

Rechercher : dans
Requette mySQL UPDATE et DELETE
par boss0211
 Fil de Discussions
Statut : Non résolu
dimanche 6 août 2006 à 01:19:17
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
Répondre à boss0211  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par maxime_B, le dimanche 6 août 2006 à 14:58:55 Fil de Discussions
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+
Répondre à maxime_B

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par boss0211, le dimanche 6 août 2006 à 15:13:22 Fil de Discussions
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
Répondre à boss0211

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par maxime_B, le dimanche 6 août 2006 à 20:32:45 Fil de Discussions
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. ;)
Répondre à maxime_B

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par maxime_B, le dimanche 6 août 2006 à 20:45:37 Fil de Discussions
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...
Répondre à maxime_B

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par pour_quoi_pas, le lundi 7 août 2006 à 10:06:49 Fil de Discussions 
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
Répondre à pour_quoi_pas
Discussions pertinentes trouvées dans le forum
04/11 00h01MySql: UpdateWebmastering20/03 14h323
17/03 12h25requette mysql ds un code phpWebmastering17/03 13h142
09/01 17h32Requette Mysql multipleProgrammation10/01 11h5511
30/05 02h16Gestion d'un GridView (update, delete)Programmation30/05 02h160
Plus de discussions sur « Requette mySQL UPDATE et DELETE » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide