Bonjour,

J'ai écrit ce script pour permettre à un utilisateur de changer son mot de passe:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
 
 
		$pdo=new PDO('mysql:host=localhost;dbname=projet', 'root','') ;
		if(!$pdo)
			{
			die('Connexion impossible : ' . mysql_error().' <br>');
			}
 
		if (isset($_POST["amp"]))
		{
			if ($_POST["nmp1"] == $_POST["nmp2"])
			{
			$amp=$_POST["amp"];
			$nmp1=$_POST["nmp1"];
			$nmp2=$_POST["nmp2"];
 
			$sql="SELECT * FROM membre WHERE pseudo ='".$_SESSION["pseudo"]."'";
			foreach ($pdo->query($sql) as $row) 
				{
					if($amp==$row['password'] && $nmp1==$nmp2)
					{	
						$requete="UPDATE membre SET password = '".$nmp1."' WHERE membre.pseudo ='".$_SESSION['pseudo']."' LIMIT 1";					
						$pdo->query($requete);
						echo("Votre mot de passe a été changé avec succès.");
					}
					else echo("Votre ancien mot de passe n'est pas correct.");
				}
 
			}
			else echo("Vos deux nouveaux mot de passe ne sont pas identiques.");
		}	
	?>
Le problème était qu'il ne se passe rien si toute les conditions sont remplies.

La requête SQL fonctionne, il rentre dans ma condition. Est-ce un problème de query?

Je ne sais pas quoi faire.

D'avance merci.