script modification de mot de passe

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : script modification de mot de passe

Re: script modification de mot de passe

par davidseb » 12 mars 2011, 18:49

merci

Re: script modification de mot de passe

par davidseb » 12 mars 2011, 18:48

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

Re: script modification de mot de passe

par xTG » 12 mars 2011, 18:15

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

Re: script modification de mot de passe

par davidseb » 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?

Re: script modification de mot de passe

par xTG » 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.

script modification de mot de passe

par davidseb » 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