Page 1 sur 1

script modification de mot de passe

Posté : 12 mars 2011, 16:00
par davidseb
Bonjour,

J'ai un problème avec mon script de changement de mot de passe. Lorsque tout est bon (ancien mot de passe correct, et nouveau mot de passe bien confirmé), j'ai un message d'erreur je vous joint mon script et le message d'erreur :

Script :

<?php

$form_changepassword = false;

if(isset($_POST['login'])&&
isset($_POST['mdp'])&&
isset($_POST['nmdp'])&&
isset($_POST['cnmdp'])){
if ($_POST['nmdp'] == $_POST['cnmdp']) {
if (Utilisateur::getUtilisateur($_POST['login']) != null) {
if (Utilisateur::testerMdp($_POST['login'],$_POST['mdp'])) {
$dbh=Database::connect();
$sth = $dbh->prepare('UPDATE `utilisateurs` SET `mdp`=sha1('.$_POST['nmdp'].') WHERE `login`="'.$_POST['login'].'"');
$sth->execute();
$dbh = null;
echo 'Mot de passe modifié';
$form_changepassword = true;
} else {

echo'Mot de passe incorrect';
}
} else {

echo'Utilisateur inexistant';
}
} else {
echo'Erreur confirmation mot de passe';
}
}



if (!$form_changepassword) {
echo '<form action="index.php?page=changepassword" method="post">' .
'<p>Login : <input name="login" value="' .
(isset($_POST["login"]) ? $_POST["login"] : "") . '"</p>' .
'<p>Ancien mot de passe : <input name="mdp" type="password"/></p>
<p>Nouveau mot de passe : <input name="nmdp" type="password"/></p>
<p>Confirmer le nouveau mot de passe : <input name="cnmdp" type="password"/></p>
<p><input type="submit" value="Valider"/></p></form>';

$form_values_valid = true;
}

?>



message d'erreur :

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'popopo' in 'field list'' in /Applications/XAMPP/xamppfiles/htdocs/ModexWeb/changepassword.php:14 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/ModexWeb/changepassword.php(14): PDOStatement->execute() #1 /Applications/XAMPP/xamppfiles/htdocs/ModexWeb/index.php(59): require('/Applications/X...') #2 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/ModexWeb/changepassword.php on line 14



Merci d'avance de votre aide

Re: script modification de mot de passe

Posté : 12 mars 2011, 17:30
par xTG
Le mot de passe est un champs varchar, il faut donc entourer sa valeur avec des quotes dans la requête.

Re: script modification de mot de passe

Posté : 12 mars 2011, 18:02
par davidseb
Merci,

le message d'erreur n'apparait plus, il y a écrit mot de passe modifié, ceci dit maintenant le nouveau mot de passe ne me permet pas de me connecter, l'ancien non plus d'ailleurs...

Avez vous une idée?

Re: script modification de mot de passe

Posté : 12 mars 2011, 18:15
par xTG
Changer manuellement le bouzin qui a été mis dans le n-uplet ?

Re: script modification de mot de passe

Posté : 12 mars 2011, 18:48
par davidseb
ca a marché, j'avais juste mal mis le sha1()

Re: script modification de mot de passe

Posté : 12 mars 2011, 18:49
par davidseb
merci