|
|
|
| Requette mySQL UPDATE et DELETE par boss0211 |
dimanche 6 août 2006 à 01:19:17 |
<?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
?>
<?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
}
?>
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+ |
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 |
| 04/11 00h01 | MySql: Update | Webmastering | 20/03 14h32 | 3 |
| 17/03 12h25 | requette mysql ds un code php | Webmastering | 17/03 13h14 | 2 |
| 09/01 17h32 | Requette Mysql multiple | Programmation | 10/01 11h55 | 11 |
| 30/05 02h16 | Gestion d'un GridView (update, delete) | Programmation | 30/05 02h16 | 0 |