Update MySQL

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
 le père -
Bonjour,

J'ai un problème sur d'édition sur ce bout de code :
Il ne modifie rien, ni le mot de passe ni les éléments renseignés.
<?php include("../conf.php"); include("../fonctions.php"); include("../verif.php");
if (empty($_GET["idadmin"])) { header("location: utilisateur.php"); exit(); }
$idadmin = $_GET["idadmin"];
$r = mysql_query("select * from Adm_Connection where idadmin='$idadmin';");
if (mysql_num_rows($r)==0) { header("location: utilisateur.php"); exit(); }

$login 	= mysql_result($r,0,"login");
$email 	= mysql_result($r,0,"email");
$prenom = mysql_result($r,0,"prenom");
$nom 	= mysql_result($r,0,"nom");
$site 	= mysql_result($r,0,"site");
$msn 	= mysql_result($r,0,"msn");
$aim 	= mysql_result($r,0,"aim");
$yahoo 	= mysql_result($r,0,"yahoo");
$jabber = mysql_result($r,0,"jabber");
$gmail 	= mysql_result($r,0,"gmail");
$renseignements = mysql_result($r,0,"renseignements");

if (isset($_POST["action"]) && $_POST["action"] == "send")
{
$nouveau = $_POST["nouveau"];
$confirmation = $_POST["confirmation"];
$email = $_POST["email"];
$prenom = $_POST["prenom"];
$nom = $_POST["nom"];
$site = $_POST["site"];
$msn = $_POST["msn"];
$aim = $_POST["aim"];
$yahoo = $_POST["yahoo"];
$jabber = $_POST["jabber"];
$gmail = $_POST["gmail"];
$renseignements = $_POST["renseignements"];

	if (!okpseudo($nouveau))
	{
	$_GET["msg"] = urlencode("La confirmation du mot de passe n'est pas renseignée.");
	}
	else
	{
	if (!okpseudo($nouveau))
	{
	$_GET["msg"] = urlencode("La confirmation du mot de passe n'est pas renseignée.");
	}
	else
	{
		$nouveau = md5($nouveau);
		$r = mysql_query("UPDATE Adm_Connection SET password='$nouveau', email='$email', prenom='$prenom', '$nom', '$site', '$msn', '$aim', '$yahoo', '$jabber', '$gmail', '$renseignements' where idadmin='$idadmin';");
		header("location: editer.php?idadmin=$idadmin&msg=".urlencode("Le mot de passe a été modifié avec succès."));
		exit();
	}
	}
}
?>

Pouvez-vous m'aider à résoudre ce problème svp ?

A voir également:

9 réponses

jambondardennes Messages postés 482 Date d'inscription   Statut Membre Dernière intervention   39
 
bonjour,

fais un simple echo pour voir si $idadmin a bien la valeur voulu pour la modification.
Si cela n'est pas le cas le problème se situe alors à ce niveau.
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Oui, "Admin" à la valeur 1 et "Test" à la valeur 4
Donc il lis bien l'enregistrement
c'est plutot l'édition qui ne se prends pas en compte...
0
graffx Messages postés 6506 Date d'inscription   Statut Contributeur Dernière intervention   1 975
 
en passant les mots clés sql comme where s'ecrivent en majuscule obligatoirement, donc WHERE
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Non, mon problème n'est pas résolu.
Il affiche, mais lorsque j'édite, il n'enregistre toujours pas les modifications.
0

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

Posez votre question
le père
 
Bonjour

Non, les mots clés de SQL n'ont pas besoin d'être en majuscules.
Par contre, dans l'UPDATE, im faudrait mettre nom='$nom', site='$site', msn='$msn'... au lieu de simplement '$nom', '$site', '$msn'...
Si tu mettais un or mysql_error(); dans l'appel à ta requête, tu aurais eu un message d'erreur qui t'aurait guidé.
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Super il fonctionne ! hihi
Par contre si je rentre un mauvais mot de passe (cad celui qui n'est pas dans la table, et j'édite ensuite, il prends en compte sans message d'erreur.

Exemple, le mot de passe initial est "123" et j'édite en 321 puis confirme en 321
Il prends en compte l'édition même si j'ai mi en initial 741 et dans l'édition 852 et la confirmation 852.

Y a t-il une solution pour ca svp ?
0
le père
 
Je ne vois pas où est l'ancien mot de passe ni où il est testé.

D'autre part, pourquoi tester 2 fois de suite if (!okpseudo($nouveau)) ?
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Oui tu as raison, voilà le code source éditer :
<?php include("../conf.php"); include("../fonctions.php"); include("../verif.php");
if (empty($_GET["idadmin"])) { header("location: utilisateur.php"); exit(); }
$idadmin = $_GET["idadmin"];
$r = mysql_query("SELECT * FROM Adm_Connection WHERE idadmin='$idadmin';");
if (mysql_num_rows($r)==0) { header("location: utilisateur.php"); exit(); }

$login 	= mysql_result($r,0,"login");
$email 	= mysql_result($r,0,"email");
$prenom = mysql_result($r,0,"prenom");
$nom 	= mysql_result($r,0,"nom");
$site 	= mysql_result($r,0,"site");
$msn 	= mysql_result($r,0,"msn");
$aim 	= mysql_result($r,0,"aim");
$yahoo 	= mysql_result($r,0,"yahoo");
$jabber = mysql_result($r,0,"jabber");
$gmail 	= mysql_result($r,0,"gmail");
$renseignements = mysql_result($r,0,"renseignements");

if (isset($_POST["action"]) && $_POST["action"] == "send")
{
$nouveau = $_POST["nouveau"];
$confirmation = $_POST["confirmation"];
$email = $_POST["email"];
$prenom = $_POST["prenom"];
$nom = $_POST["nom"];
$site = $_POST["site"];
$msn = $_POST["msn"];
$aim = $_POST["aim"];
$yahoo = $_POST["yahoo"];
$jabber = $_POST["jabber"];
$gmail = $_POST["gmail"];
$renseignements = $_POST["renseignements"];

	if (!okpseudo($nouveau))
	{
	$_GET["msg"] = urlencode("La confirmation du mot de passe n'est pas renseignée.");
	}
	else
	{
		$nouveau = md5($nouveau);
		$r = mysql_query("UPDATE Adm_Connection SET password='$nouveau', email='$email', prenom='$prenom', nom='$nom', site='$site', msn='$msn', aim='$aim', yahoo='$yahoo', jabber='$jabber', gmail='$gmail', renseignements='$renseignements' WHERE idadmin='$idadmin';");
		header("location: editer.php?idadmin=$idadmin&msg=".urlencode("Le mot de passe a été modifié avec succès."));
		exit();
	}
}
?>
0
le père
 
Tu dis que le nouveau mot de passe est pris en compte même si l'ancien est mauvais, mais où est ton test sur l'ancien mot de passe ?
0