Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 14/10/2009, 22h23   #1
Invité de passage
 
Inscription : juin 2009
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 29
Points : 3
Points : 3
Par défaut Formulaire changement de mot de passe php / phpMyAdmin

Bonsoir j'ai un petit probleme : j'essaye depuis quelques jours de finaliser mon formulaire de modification de mot de passe qui logiquement apres traitement des informations saisies devrait effectuer une requete SQL update pour modifier ma table dans ma base de donnée. Apres saisies des mdp l'erreur suivante s'affiche :

Query was empty

Si quelqu'un aurait une idée elle sera la bienvenue.Merci et bonne soirée.

code formulaire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<title>Changement de mot de passe</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet"type="text/css"href="designform.css">
	</head>
	<body>
	<form action="newpass.php" method='post'>
<table>
<tr><td>Ancien mot de passe :</td><td> <input type="password" name="oldpass"size="20"/></td></tr>
<tr><td>Nouveau mot de passe : </td><td> <input type="text" name="newpass1"size="20"/></td></tr>
<tr><td>Confirmation mot de passe : </td><td> <input type="text" name="newpass2" size="20"/></td></tr>
<TR>
<TD><INPUT TYPE="SUBMIT" VALUE="Mise a jour"></TD>
</TR>
 
</TABLE>
</form>
 
</body>
</html>
code traitement :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<title>New pass</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet"type="text/css"href="designform.css">
	</head>
	<body>
<?php
$oldpass = $_POST["oldpass"];
$newpass1 = $_POST["newpass1"];
$newpass2 = $_POST["newpass2"];
$login = $_POST["login"];
$pass = $_POST["pass"];
 
 
require_once "connect.php";
 
//si oldpass est bon et newpass1 = newpass2
if( $pass == $oldpass and $newpass1 == $newpass2){;
 
mysql_query("UPDATE utilisateur SET pass='$newpass1' login = '$login'");
//$sql = sprintf("UPDATE utilisateur SET pass = $newpass1 FROM utilisateur WHERE login = $login");
GetSQLValueString($newpass1,"text");
GetSQLValueString($login,"text");
}
 
$rs = mysql_query($sql1) or die ("Erreur : <br/><code>" . $sql1 . "<code><br/>--<br/>" 
. "<span class='alert'>" . mysql_error() . "</span>");
 
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
 
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
 
}
//si ancien mot de pass incorrect
if  ($pass != $oldpass){;
	echo 'Votre ancien mot de pass a été mal renseigné';
	}
	//si  les 2 mdp sont differents
if ($newpass1 != $newpass2){;
	echo 'Vous avez tapé deux mots de passe différents';
	}
 
 
 
 
?>
	</body>
	</html>
sef313 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2009, 22h31   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il n'y a aucune requete dans ce que tu nous montres.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2009, 22h50   #3
Invité de passage
 
Inscription : juin 2009
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 29
Points : 3
Points : 3
mysql_query("UPDATE utilisateur SET pass='$newpass1' login = '$login'");

nn?
sef313 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2009, 22h59   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
$sql1 n'est pas défini ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2009, 23h08   #5
Invité de passage
 
Inscription : juin 2009
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 29
Points : 3
Points : 3
Code :
1
2
3
4
5
6
7
8
mysql_query("UPDATE utilisateur SET pass='$newpass1' login = '$login'");
//$sql = sprintf("UPDATE utilisateur SET pass = $newpass1 WHERE login = $login");
GetSQLValueString($newpass1,"text");
GetSQLValueString($login,"text");
}
 
$rs = mysql_query($sql) or die ("Erreur : <br/><code>" . $sql . "<code><br/>--<br/>"
. "<span class='alert'>" . mysql_error() . "</span>");
sql1 était un test j'ai oublié de supprimé le "1" et à la base je remplaçai le mysql query par le $sql=sprintf... en pensant que c'était sa la requete

Dernière modification par sabotage ; 15/10/2009 à 08h20. Motif: fusion
sef313 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2009, 14h15   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
sql1 était un test j'ai oublié de supprimé le "1"
Le problème est le même : $sql n'est pas défini puisque ta ligne est commentée.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2009, 17h44   #7
Invité de passage
 
Inscription : juin 2009
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 29
Points : 3
Points : 3
Donc j'ai juste a enlever les "//"?
sef313 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2009, 08h57   #8
Membre Expert
 
Avatar de nosferapti
 
Inscription : avril 2009
Messages : 1 157
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 1 157
Points : 1 133
Points : 1 133
Citation:
Envoyé par sef313 Voir le message
Donc j'ai juste a enlever les "//"?
normalement non puisque tu exécutes la requête juste avant
j'ai l'impression que tu as mélangé plusieurs code, regarde tout ton code ligne par ligne en vérifiant ce qu'il fait et tu verras qu'il y a des lignes qui posent problème
__________________
GNAP !
nosferapti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2009, 16h18   #9
Invité de passage
 
Inscription : juin 2009
Messages : 29
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 29
Points : 3
Points : 3
Voila apres modifications mon script change mon mot de passe de la base de donnée mais le probléme c'est qu'il le fait sans prendre en compte les conditions ("if"): même si l'ancien mot de passe entré ne correspond pas avec celui de la base de donnée ou que les 2 mots de passes entrés dans le formulaire ne soit pas les mêmes il change celui de la base de donnée quand même. Le code est :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<title>New pass</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet"type="text/css"href="designform.css">
	</head>
	<body>
<?php
$oldpass = $_POST["oldpass"];
$newpass1 = $_POST["newpass1"];
$newpass2 = $_POST["newpass2"];
$login = $_POST["login"];
 
require_once "connect.php";
 
$reponse = mysql_query("SELECT pass FROM utilisateur  WHERE login = '$login'");
$donnees = mysql_fetch_array($reponse);
 
//si ancien mot de pass incorrect
if  ($donnees != $oldpass)
	{echo 'Votre ancien mot de pass a été mal renseigné';}
 
	//si  les 2 mdp sont different
elseif ($newpass1 != $newpass2)
	{echo 'Vous avez tapé deux mots de passe différents';}
 
//si oldpass est bon et newpass1 = newpass2
while( $donnees == $oldpass and $newpass1 == $newpass2);
 
$sql = sprintf("UPDATE utilisateur SET pass = $newpass1  WHERE login = '$login'");
GetSQLValueString($newpass1,"text");
GetSQLValueString($login,"text");
 
 
$rs = mysql_query($sql) or die ("Erreur : <br/><code>" . $sql . "<code><br/>--<br/>" 
. "<span class='alert'>" . mysql_error() . "</span>");
 
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;}
 
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
	   return $theValue;
  }
 
 
{echo 'Votre mot de passe à été changé'; 
}
mysql_close($db);
 
?>
	</body>
	</html>
Si quelqu'un a une solution je suis preneur, merci d'avance.

et php me renvoi le message :"Votre ancien mot de pass a été mal renseignéVotre mot de passe à été changé "

Dernière modification par sef313 ; 18/10/2009 à 15h35.
sef313 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 21h55.


 
 
 
 
Partenaires

Hébergement Web