gpt4 book ai didi

javascript - 使用 ajax、php 和 mysql 进行表单验证

转载 作者:行者123 更新时间:2023-11-29 05:18:35 26 4
gpt4 key购买 nike

我正在构建一个登录表单,并希望立即检查以确保电子邮件地址是我数据库中的地址。

我环顾四周并尝试了很多不同的方法来使这项工作正常进行,但我似乎无法使其正常工作。

这是表格

<form>
<input type="text" id="email" name="email" placeholder="Email Address" onblur="checkEmail(this.value);" onchange="checkEmail(this.value);"/>
<input type="password" id="password" name="password" placeholder="Password"/>
<input type="button" id="login-signup" value="Login / Sign Up"/>
</form>

这是 Javascript。这就是我认为的问题所在。

function checkEmail(email) {
// check to see if the email exists in the database using PHP and MySQL
$.ajax({
url: 'login.php', //the script to call to get data
type: 'post',
data: {
email: $('#email').val()
},
dataType: 'json', //data format
success: function(response) { //on reception of reply
if(response == 'match') {
console.log('match');
} else if (response == 'no match') {
console.log('no match');
} else if (response == 'error') {
console.log('error');
} else {
console.log('who knows');
}
}
});

}

这里是 login.php 如果我导航到 mywebsite.com/login.php?email=email 那么一切正常,所以我知道这是我需要的。我想问题出在我的 ajax 上

$db_host = "host";
$db_user = "user";
$db_pass = "pass";
$db_name = "name";


$db = new PDO('mysql:host='.$db_host.';dbname='.$db_name, $db_user, $db_pass);


if(isset($_GET['email'])) {
$email = $_GET['email'];
echo $email;
}

// Using prepared statements almost eliminates the possibility of SQL Injection.
$preparedQuery = $db->prepare("SELECT * FROM `members` WHERE `email` = :email");
$preparedQuery->bindValue(":email", $email);
$preparedQuery->execute();

// Retrieve the results from the database
$user = $preparedQuery->fetch(PDO::FETCH_ASSOC);

// If there is a user record print the user & pass...
if($user != ''){
echo 'match';
$_SESSION['email'] = $email;
} else if ($user == '') {
echo 'no match';
} else {
echo 'error';
}

最佳答案

@user4035 建议从 AJAX 请求中删除数据类型,并得到返回结果的请求。 @Banik 建议将 $_GET 更改为 $_POST 并且效果也很好。现在一切都完美了

关于javascript - 使用 ajax、php 和 mysql 进行表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29219013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com