Javascript 检查数据库中已经存在的电子邮件,使用json从数据库返回数据,
我想检查表中是否已经存在电子邮件。 我正在使用bootstrap formValidator库和远程方法, 但它没有产生任何适当的结果。 它总是显示相同的信息,不管是对是错,都不知道是什么错了。 remote.phpJavascript 检查数据库中已经存在的电子邮件,使用json从数据库返回数据,,javascript,php,html,Javascript,Php,Html,我想检查表中是否已经存在电子邮件。 我正在使用bootstrap formValidator库和远程方法, 但它没有产生任何适当的结果。 它总是显示相同的信息,不管是对是错,都不知道是什么错了。 remote.php <?php include("dbcontroller"); $dbhandle=new DBcontroller(); header('Content-type: application/json'); include("connect.php"); $sql="
<?php
include("dbcontroller");
$dbhandle=new DBcontroller();
header('Content-type: application/json');
include("connect.php");
$sql="select * from members";
$temp=array();
$result=$db_handle->runQuery($sql);
foreach($result as $row)
{
$temp[]=$row['email'];
}
$valid = true;
if (isset($_POST['email'])) {
$email = $_POST['email'][0];
foreach ($temp as $k => $v) {
if ($email == $v) {
$valid = false;
break;
}
}
}
echo json_encode(array(
'valid' => $valid,
));
?>
为什么不在SQL查询中进行检查
$sql = "SELECT email FROM members WHERE email = '".$_POST['email']."'";
现在,您只需检查它是否返回超过0个结果:
$valid = false;
$result=$db_handle->runQuery($sql);
if(sizeOf($results) > 0) {
$valid = true;
}
虽然您可能应该避开$\u POST,但要避免SQL注入;-) 代码格式很糟糕。你为什么希望有人读到这些<代码>选择*不正确;“javascript文件”不是一个完整的javascript文件。我们不知道您对该对象使用的验证器。验证器键是
emaill[]
带有两个l
字符,但您输入的name
属性是email[]
带有一个l
字符。好吧,用php而不是sql搜索是避免注入的一种方法……使用count(电子邮件),更好的方法是检查i thinksizeOf()的大小只是count的别名。所以它们都是一样的;)我的意思是,在查询中,SELECT count(email)FROM members WHERE email='.”“$\u POST['email']”“;
sql injection alert,不要在生产中使用它。您必须转义$u POST变量öhm您确实看到代码后面的句子,对吗?:D
$sql = "SELECT email FROM members WHERE email = '".$_POST['email']."'";
$valid = false;
$result=$db_handle->runQuery($sql);
if(sizeOf($results) > 0) {
$valid = true;
}