Requette mySQL UPDATE et DELETE
boss0211
Messages postés
264
Statut
Membre
-
pour_quoi_pas Messages postés 40 Statut Membre -
pour_quoi_pas Messages postés 40 Statut Membre -
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 :
suprimer.php :
Voila merci d'avance
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
-
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 -
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. ;) -
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... -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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+