Php 我无法让我的验证电子邮件工作,我遗漏了什么? $TableName=“实习生”; 如果($errors==0) { $SQLstring=“从$TableName”“中选择COUNT(*)”,其中email=$email”; $QueryResult=mysqli_query($DBConnect,$SQLstring); 如果($QueryResult) { $Row=mysqli\u fetch\u行($QueryResult); 如果($Row[0]>0) { echo“

Php 我无法让我的验证电子邮件工作,我遗漏了什么? $TableName=“实习生”; 如果($errors==0) { $SQLstring=“从$TableName”“中选择COUNT(*)”,其中email=$email”; $QueryResult=mysqli_query($DBConnect,$SQLstring); 如果($QueryResult) { $Row=mysqli\u fetch\u行($QueryResult); 如果($Row[0]>0) { echo“,php,mysqli,Php,Mysqli,输入的电子邮件地址(.htmlentities($email)。”)已注册。\n”; ++$errors; } } } 我做错了什么,我觉得一切都很好。我觉得有点晚了,也许我需要一双新眼睛。非常感谢您的帮助。您缺少空格和引号,请更改: $TableName = "interns"; if ($errors == 0) { $SQLstring = "SELECT COUNT(*) FROM $TableName" . "WHERE email=$email"; $QueryResult

输入的电子邮件地址(.htmlentities($email)。”)已注册。

\n”; ++$errors; } } }
我做错了什么,我觉得一切都很好。我觉得有点晚了,也许我需要一双新眼睛。非常感谢您的帮助。

您缺少空格和引号,请更改:

$TableName = "interns";
if ($errors == 0)
    {
$SQLstring = "SELECT COUNT(*) FROM $TableName" . "WHERE email=$email";
$QueryResult = mysqli_query($DBConnect, $SQLstring);
    if ($QueryResult)
        {
            $Row = mysqli_fetch_row($QueryResult);
            if ($Row[0]>0)
                 {
                 echo "<p>The email address enterend (" . htmlentities($email) . ") is already registered.</p>\n";
                 ++$errors;
                 }
        }
    }
致:

或者更简单(不需要字符串连接):

添加:

正如j_mcnally在下面建议的那样,最好避开
$email
,以防止可能的sql注入攻击

为什么要使用串联来附加两个字符串文本?请尝试以下
“从$TableName中选择COUNT(*),其中email='{$email}'”
解决此问题后,请确保转义$email以防止sql注入。检查错误。总是。你需要逃避$email!另一方面,我可以注入任意sql。@j_mcnally a)为什么您会认为
$email
字段来自用户输入?b) 谁说,
$email
没有逃逸,c)否决答案意味着它没有用!输入的电子邮件地址(“.htmlentities($email)。”)已注册。@j_mcnally在这种情况下,请忽略c):@Kevo89
stripslashes
在这里使用的函数完全错误(坦白说,在任何地方都是如此)。查找
mysqli\u real\u escape\u字符串
"SELECT COUNT(*) FROM $TableName" . "WHERE email=$email";
"SELECT COUNT(*) FROM $TableName" . " WHERE email='$email'";
"SELECT COUNT(*) FROM $TableName WHERE email='$email'";