【发布时间】:2015-12-09 04:52:38
【问题描述】:
我在获取 jQuery Validation 以检查 mysql 表中是否已存在电子邮件地址时遇到了一点问题。
每次我提交表单时,它都会告诉我电子邮件已经存在,即使我知道它不存在。
这是我的代码:
validation.js
$(document).ready(function () {
$('#signup').validate({
errorLabelContainer: "#cs-error-note",
wrapper: "li",
rules: {
email: {
required: true,
email: true,
remote: {
url: "check-username.php",
type: "post"
}
}
},
messages: {
email: {
required: "Please enter your email address.",
email: "Please enter a valid email address.",
remote: "Email already in use!"
}
},
submitHandler: function(form) {
form.submit();
}
});
});
检查用户名.php
<?php
require('../../private_html/db_connection/connection.php');
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$query = $conn->prepare("SELECT * FROM 'user_accounts' WHERE email = '" . $_POST['email'] . "'");
$query->execute();
if( $query->rowCount() > 0 ){
echo 'true';
}
else{
echo 'false';
}
?>
非常感谢您的帮助!
【问题讨论】:
-
也许您应该返回布尔值 true 或 false,因为
'false'是一个可以被评估为布尔值 true 的搅拌器。 -
我认为返回值 true 意味着“允许插入” - 所以你可以反过来尝试:
if( $query->rowCount() > 0 ) { echo 'false'; } else { echo 'true'; } -
rowCount() 不适用于 SELECT 语句。stackoverflow.com/a/31569733/1011527
-
@ThomasBaumgartner - 谢谢,但这似乎有相反的影响,它告诉我所有电子邮件地址都是有效的,即使我知道它们在数据库中。
-
@JayBlanchard - 谢谢杰,我不知道这一点。您能否发布在这种情况下使用的代码?
标签: javascript php jquery mysql validation