8768 sujets

Développement web côté serveur, CMS

Bonjour,

Je débute depuis quelque temps dans l'apprentissage du PHP.
Les nombreux problèmes que je rencontre ne se comptent plus. Sans doute le côté moins intuitif que le HTML.

Cette fois-ci, je bloque sur le changement du mot de passe. Je voudrais vérifier que l'ancien mot de passe entré correspond au même mot de passe lors de l'inscription.

Je pense savoir que je dois travailler avec mysqli_num_rows, mais je ne sais pas comment l'insérer
Pourriez-vous m'aiguiller svp ? Smiley biggrin

 <?php
 
 session_start();

 	if(isset($_POST['submit']))
{		
	$bdd = mysqli_connect('localhost', 'root', '', 'insectelevage');
	$pseudo = mysqli_real_escape_string ($bdd, $_POST['pseudo']);
	
		if(empty($pseudo))
		{
		echo "Veuillez completer ce champ";
		}else
		{
		$resultat = mysqli_query($bdd, "UPDATE users SET username = '$pseudo' WHERE username ='{$_SESSION['pseudo']}'");
		}
			
		header("Location:logout.php");
 }

 ?>
 
 <form method="post">
 <p>Votre nouveau pseudo</p>
 <input type="text" name="pseudo">
 <br/><br/>
  <input type="submit" name="submit" value="changer">
 </form>
 
 <hr/>
 
 <?php
 if(isset($_POST['subpass']))
 {
 $bdd = mysqli_connect('localhost', 'root', '', 'insectelevage');
 $o_password = mysqli_real_escape_string ($bdd, $_POST['o_password']);
 $n_password = mysqli_real_escape_string ($bdd, $_POST['n_password']);
 $r_password = mysqli_real_escape_string ($bdd, $_POST['r_password']);
 
 $o_password = md5($o_password);
 
 $login = mysqli_query($bdd, "SELECT * FROM users WHERE username='{$_SESSION['pseudo']} AND password='$o_password'");
 
	if(empty($o_password))
	{
	echo "Veuillez saisir votre mot de passe";
	}
	else if($n_password != $r_password)
	{
	echo "Vos nouveaux mots de passe sont différents";
	}
	else if($login -> num_rows == 1)
	{
	echo "L'ancien mot de passe est incorrect";
	}
 }
 ?>
 
 <form method="post">
<p>Ancien mot de passe</p>
<input type="password" name="o_password">
<p>Nouveau mot de passe</p>
<input type="password" name="n_password">
<p>Répéter mot de passe</p>
<input type="password" name="r_password">
<br/><br/>
<input type="submit" name="subpass" value="Changer de mot de passe">
 </form>
.
Modifié par Brandon93 (15 Dec 2014 - 22:15)
hello

une petite rponse vite fait Smiley cligne

à la palce de ça

else if($login -> num_rows == 1)


mettre ça

else if(mysqli_num_rows($login) == 0)
en meme temps ça aussi c'est mal écrit

$login = mysqli_query($bdd, "SELECT * FROM users WHERE username='{$_SESSION['pseudo']} AND password='$o_password'");


$login = mysqli_query($bdd, "SELECT * FROM users WHERE username='".$_SESSION['pseudo']."' AND password='$o_password'");