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 : 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 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
 // 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 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
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));
?>