Petit "foutage de tête" de la part de l'ordinateur ou erreur de ma part ?
Posté : 27 mai 2017, 10:49
Bonjour à toutes et à tous,
Je viens vers vous aujourd'hui car j'ai clairement l'impression qu'il y'a quelque chose de pas logique dans mon ordi !
Je fais le script suivant pour changer mon mot de passe :
Le formulaire :
Le PHP de traitement :
Et l'ajax qui traite le résultat :
Mot de passe incorrect ou trop court ! - soit le message d'erreur relatif quand on a pas rentré le bon mot de passe actuel au départ..
J'ai déjà testé ce script pour la partie admin ça marche alors pourquoi pas là ? ... J'ai même tester si pwd1 et pwd2 n'étaient pas égales à pwd0...
Bref pourquoi cet abruti me donne ce message d'erreur alors que la partie AJAX recharge bien la page du fait de trouver la class good, et que le mot de passe est bien enregistré ?
Je comprends mais alors carrément rien là...
De l'aide s'il vous plaît ?
Je viens vers vous aujourd'hui car j'ai clairement l'impression qu'il y'a quelque chose de pas logique dans mon ordi !
Je fais le script suivant pour changer mon mot de passe :
Le formulaire :
<form method="post" id="modifMdpEM" action="functions/mdp.php">
<p><i class="fa fa-info-circle"></i> Pour modifier votre mot de passe, vous aurez besoin de renseigner celui actuel, d'en choisir un nouveau, et de retaper le nouveau mot de passe choisi.</p>
<div class="col-xs-12 col-sm-6">
<input type="password" class="form-control underlined pwdInputEM" name="pwd0" placeholder="Mot de passe actuel"/>
</div>
<div class="col-xs-12 col-sm-6">
<input type="password" class="form-control underlined pwdInputEM" name="pwd1" placeholder="Nouveau mot de passe"/>
</div>
<div class="col-xs-12 col-sm-6">
<input type="password" class="form-control underlined pwdInputEM" name="pwd2" placeholder="Veuillez saisir le nouveau mot de passe"/>
</div>
<button class="modifMDPEMBtn btn btn-primary">Modifier</button>
</form>
<div id="result3"></div>
Le PHP de traitement :
<?php
session_start();
$lien = mysqli_connect('localhost','root','root','ls_bdd');
mysqli_query($lien,"SET NAMES UTF8");
if(isset($_POST['pwd0']) && isset($_POST['pwd1']) && isset($_POST['pwd2'])){
if((md5($_POST['pwd0']) != $_SESSION['pwd']) || ($_POST['pwd0'] == "")){
echo "<div class=\"card card-warning animated rubberBand\">
<div class=\"card-header\">
<div class=\"header-block\">
<p class=\"title\"><i class=\"fa fa-times-circle\"></i>Mot de passe incorrect ou trop court !</p>
</div>
</div>
</div>";
}
else{
if(preg_match('#^(?=.*[a-z]).{6,}$#', $_POST['pwd1'])) {
if(($_POST['pwd1'] == $_POST['pwd2']) && ($_POST['pwd1'] !== $_POST['pwd0']) && ($_POST['pwd2'] !== $_POST['pwd0'])){
$nouveau = md5($_POST['pwd1']);
$req = "UPDATE ls_membres SET pwd = '".$nouveau."' WHERE name='".$_SESSION['nom']."' AND firstName='".$_SESSION['prenom']."';";
$res = mysqli_query($lien, $req);
if (!$res) {
echo "Erreur dans la requête";
}
else {
echo "<div class=\"card card-success\">
<div class=\"card-header\">
<div class=\"header-block\">
<p class=\"good title\"><i class=\"fa fa-check-circle\"></i>Nouveau mot de passe enregistré avec succès !</p>
</div>
</div>
</div>";
$_SESSION['pwd'] = $nouveau;
}
}
else{
echo "<div class=\"card card-warning animated rubberBand\">
<div class=\"card-header\">
<div class=\"header-block\">
<p class=\"title\"><i class=\"fa fa-times-circle\"></i>Les deux mots de passe ne correspondent pas.</p>
</div>
</div>
</div>";
}
}
else{
echo "<div class=\"card card-warning animated rubberBand\">
<div class=\"card-header\">
<div class=\"header-block\">
<p class=\"title\"><i class=\"fa fa-times-circle\"></i>Mot de passe trop court. <br/>Veuillez choisir un mot de passe à au moins 6 caractères.</p>
</div>
</div>
</div>";
}
}
}
?>
Et l'ajax qui traite le résultat :
<script>
$('#modifMdpEM').submit(function(event){
var formUrl = $(this).attr("action");
$.ajax(
{
url : formUrl,
type: "POST",
data: $(this).serialize(),
success:function(data, textStatus, jqXHR)
{
$('#result3').html(data);
if($('#result3 .card .card-header .header-block p').hasClass('good')){
window.setTimeout( function(){
location.reload()
}, 2500 );
}
}
});
event.preventDefault();
});
</script>
Et j'ai ce résultat : Mot de passe incorrect ou trop court ! - soit le message d'erreur relatif quand on a pas rentré le bon mot de passe actuel au départ..
J'ai déjà testé ce script pour la partie admin ça marche alors pourquoi pas là ? ... J'ai même tester si pwd1 et pwd2 n'étaient pas égales à pwd0...
Bref pourquoi cet abruti me donne ce message d'erreur alors que la partie AJAX recharge bien la page du fait de trouver la class good, et que le mot de passe est bien enregistré ?
Je comprends mais alors carrément rien là...
De l'aide s'il vous plaît ?