Bonjour tout le monde j'ai un formulaire pour demande d'oublie de mot de passe le code semble vouloir fonctionné mais il n'envoi rien je ne comprend pas pourquoi Coté code ajax fonctionne très bien je pense. j'ai une adresse mail enregistré dans la base de donnée mais lorsque je fais un test avec, ça me dit que l'adresse ne correspond à aucun compte ?Merci de l'aide.
Code html:
Code Ajax:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <div id="valider" class="col-md-6 col-md-offset-2 col-sm-12 col-xs-12"> <div class="alert alert-info" role="alert" id="alert"><i class="fa fa-circle" aria-hidden="true" style="margin-right:2px;font-size:8px;color:#30b305;"></i> Pour réinitialiser votre mot de passe, inscrivez votre adresse mail ci-dessous. </div> <div class="alert alert-danger" style="display: none;"> Aucun compte ne correspond à cet adresse <i class="fas fa-exclamation"></i> </div> <div class="alert alert-success" id="success" style="display: none;"> Les instructions pour réinitialiser votre mot de passe vous ont été envoyer par e-mail ! </div> <form method="post" action=""> <div class="row"> <div class="col-md-12 col-sm-12 col-xs-12"> <div class="form-group validate-input"> <label for="email"><i class="fa fa-at" id="user"></i>Votre adresse mail</label> <input type="email" class="form-control input-label" id="email" name="email" placeholder="Email" required> </div> </div> <div class="col-md-12 col-sm-12 col-xs-12"> <button type="submit" class="btn-default btn abt-btn" name="envoi">Valider<i class="fas fa-sign-in-alt sign" style="margin-left: 5px;"></i> <i class="fa fa-circle-o-notch fa-spin loading hide" style="margin-left: 5px;"></i> </button> </div> </div> </form> <?php try { $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Échec lors de la connexion : ' . $e->getMessage(); } ?> </div>
code Php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 // Formulaire de connexion $('#valider').on('submit', function(e) { form = $(this); valider = $(this).closest('#valider'); button = form.find('button'); alert_danger = valider.find('.alert-danger'); alert_success = valider.find('.alert-success'); $.ajax({ url: './users/password.php', type: "POST", data: $(this).serialize(), dataType: 'json', beforeSend: function() { $(".sign").addClass("hide"); button.html("Valider"); button.prop('disabled', true); alert_danger.fadeOut(100); } }).done(function(success) { if(success) { form.hide(); alert_success.fadeIn(function() { setTimeout(function(){ window.location.replace("http://localhost/xampp/DEv/connect_succefully.php"); }, 4000) }); } else { alert_danger.fadeIn(); button.html("Valider"); button.prop('disabled', false); } }); e.preventDefault(); });
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <?php $success = false; if(!empty($_POST) && !empty($_POST['email'])){ include '../inc/init.php'; $email = trim($_POST(['email'])); //on regarde si le mail existe dans la base. $sql_selectMembre = 'SELECT * FROM users WHERE email = :email AND actif = 1 AND code_activation IS NOT NULL'; $req_selectMembre = $pdo->prepare($sql_selectMembre); $req_selectMembre->execute( [ 'email' => $_POST['email'], ] ); //si le mail exist dans la base de donnée if($req_selectMembre->rowCount() == 1) { session_start(); $code_reset = sha1(microtime()); $sql_updateMembre = 'UPDATE users SET code_reset = ? AND reset_at NOW() WHERE email = :email'; $req_updateMembre = $pdo->prepare($sql_updateMembre); $req_updateMembre->execute( [ 'code_reset' => $code_reset, 'email' => $_POST['email'] ] ); $lien_validation = CONFIG['website'].'../reset_password.php?email='.$email.'&code_reset='.$code_reset; send_mail( $email, "Réinitialisation de votre mot de passe", content_mail_password_html($lien_validation), content_mail_password_text($lien_validation) ); $success = true; } } die(json_encode($success)); ?>
Partager