11348 sujets

JavaScript, DOM et API Web HTML5

Bonsoir, 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. des que je clique sur valider le texte se change mais y'a rien qui s'affiche, si l'adresse mail existe ou pas. ? Smiley decu Merci de l'aide.

Formulaire en html:

<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 !
                                </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="" id="valider">
                                    <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>
                           </div>


Ajax:


// Formulaire mot de passe oublié
    $('#valider form').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/passwordreset.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/connexion.php");
                    }, 4000)
                });
            } else {
                alert_danger.fadeIn();
                button.html("Valider");
                button.prop('disabled', false);
            }
        });
        e.preventDefault();
    });


Et le traitement en PHP "passwordreset.php":

<?php
$success = false;

if(!empty($_POST) && !empty($_POST['email']))
{
    include '../inc/init.php';

    $email = trim($_POST['email']);
    // On regarde si le mail existe
    $sql_selectMembre = 'SELECT * FROM users WHERE email = ? AND actif = 1 AND created_at IS NOT NULL';
    $req_selectMembre = $pdo->prepare($sql_selectMembre);
    $req_selectMembre->execute(
        [
            'email' => $email,
        ]
    ); 
    
    //si le mail exist
    if($req_selectMembre->rowCount() == 1)
    {
        session_start();
        $code_reset = sha1(microtime());
        $sql_updateMembre = ('UPDATE users SET code_reset = ?, reset_at = NOW() WHERE id = ?');
        $req_updateMembre = $pdo->prepare($sql_updateMembre);
        $req_updateMembre->execute(
            [
                'email' => $email,
                'id' => $req_selectMembre['id'] 
            ]

        );

        $lien_validation = CONFIG['website'].'/users/confirm_password.php?email='.$email.'&code_reset='.$code_reset;

        send_mail(
            $email,
            "Réinitialisation de votre mot de passe",
            content_mail_passwordreset_html($lien_validation),
            content_mail_passwordreset_text($lien_validation)
        );
        $success = true;
    }
}
die(json_encode($success));
?>
Modérateur
Bonjour,

Ton problème est résolu ?

- Si "oui" tu peux partager ta solution ?
- Si "non" ne le marque pas comme "Résolu"

Bonne journée