繁体   English   中英

忘记密码 PHP / AJAX

[英]Forgot password PHP / AJAX

晚上好,我有一个忘记密码的请求表格,代码似乎想要工作,但它没有发送任何东西,我不明白为什么? 另一方面,我有我的消息没有帐户对应于这个地址:(谢谢你的帮助。

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="password">
        <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 代码:

$('#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/password.php',
        type: 'POST',
        data: $('#valider').serialize(),
        dataType: 'json',
        beforeSend: function() {
            $(".sign").addClass("hide");
            button.html("Connexion...");
            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("Se connecter");
            button.prop('disabled', false);
        }
    });
    e.preventDefault();
});

Php 代码:

$success = true;
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 = ? AND actif = 1 AND code_activation IS NOT NULL";
$req_selectMembre = $pdo->prepare($sql_selectMembre);
$req_selectMembre->execute(
    [
        'email' => $email
    ]
);

//si le mail existe dans la base
if($req_selectMembre->rowCount() == 1)
{
    session_start();
    $code_reset = sha1(microtime());
    $sql_updateMembre = 'UPDATE users SET code_reset = ? AND reset_at = NOW() WHERE id = ?';
    $req_updateMembre = $pdo->prepare($sql_updateMembre);
    $req_updateMembre->execute(
        [
            'email' => $email,
            'id' => $req_selectMembre['id']
        ]
    );

    $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;
}

} 死(json_encode($成功));

你需要这些data: $('#valider form').serialize(),

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM