我尝试使用jQuery验证插件验证密码恢复表单。我设法使用远程方法验证字段,但脚本在我按下提交按钮之前发送了一个动作。
我希望你能帮助我。
这是我的javascript代码
$(document).ready(function () {
$( "#formforgotpassword" ).validate({
rules: {
uemail: {
required: true,
email: true,
remote: "includes/ctrl_password_recovery.php"
}
},
messages: {
uemail: {
required: "Ops, devi inserire un undirizzo email!",
email: "Ops, il formato email non è corretto!",
remote: "Ops, questo indirizzo email non esiste!"
}
}
});
});
这是我的PHP代码
$user_email = $_GET['uemail'];
$query_check_user = mysqli_prepare($conn, "SELECT user_id, user_email FROM users WHERE user_email = ?");
mysqli_stmt_bind_param($query_check_user, 's', $user_email);
mysqli_stmt_execute($query_check_user);
mysqli_stmt_bind_result($query_check_user, $user_id, $useremail);
mysqli_stmt_store_result($query_check_user);
$tot_email = mysqli_stmt_num_rows($query_check_user);
mysqli_stmt_fetch($query_check_user);
mysqli_stmt_close($query_check_user);
if($tot_email == 1){
echo 'true';
if ( isset($_POST['Submit']) ){
$generate_token = generateRandomString();
$stmt = mysqli_prepare($conn, "INSERT INTO user_recovery (user_id, token) VALUES (?, ?)");
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, 'ii', $user_id, $generate_token);
/* execute query */
mysqli_stmt_execute($stmt);
$send_mail = send_mail($user_email, $generate_token);
}
if($send_mail === 'success')
{
echo 'Richiesta andata a buon fine! Presto riceverai una email con le instruzioni per il ripristino';
} else{
echo 'Ops, si è verificato un problema';
}
} else {
echo 'false';
die();
}