script modification de mot de passe

Petit nouveau ! | 5 Messages

12 mars 2011, 16:00

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

ViPHP
xTG
ViPHP | 7331 Messages

12 mars 2011, 17:30

Le mot de passe est un champs varchar, il faut donc entourer sa valeur avec des quotes dans la requête.

Petit nouveau ! | 5 Messages

12 mars 2011, 18:02

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?

ViPHP
xTG
ViPHP | 7331 Messages

12 mars 2011, 18:15

Changer manuellement le bouzin qui a été mis dans le n-uplet ?

Petit nouveau ! | 5 Messages

12 mars 2011, 18:48

ca a marché, j'avais juste mal mis le sha1()

Petit nouveau ! | 5 Messages

12 mars 2011, 18:49

merci