FILTER_VALIDATE_EMAIL无法在PHP中运行

时间:2016-02-03 12:19:20

标签: php email

如果这是一个重复的问题,我道歉。我已经阅读了一百个帖子并试图实现我发现的每一个修复都无济于事。

我传递了一个名为email_tocheck的变量。我只是想确保电子邮件不在数据库中而且已经存在。这是一个有效的"电子邮件。

无论我做什么,我都无法满足有效电子邮件的要求。如果我只是输入' myemail@mydomain.com'在第一个$email中使用单引号而不是IF statement,电子邮件将以未定义的形式返回。我被卡住了。很开心。

我是否犯了一个愚蠢的语法错误?我喜欢这么多新手。任何想法都会受到最高的赞赏。

$url=$_SERVER['QUERY_STRING'];
parse_str($url);
$email = "'$email_tocheck'";
$sql = "SELECT * from EmailList where Email=$email";    
$conn->query($sql);
$result = $conn->query($sql);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    if((mysqli_num_rows($result)>0)){   
            $num1 = 'Not Valid';
            $num2 = 'This email has been unsubscribed.';
            echo json_encode(array($num1, $num2)); 
    } else {
            $num1 = 'Valid';
            $num2 = 'Send away';
            echo json_encode(array($num1, $num2));
    }
} else {
    $num1 = 'Not Valid';
    $num2 = 'A valid email is required.';
    echo json_encode(array($num1, $num2,$email)); 
}

1 个答案:

答案 0 :(得分:0)

$email = "'$email_tocheck'";

这意味着$email'foo@bar.com'不是有效的电子邮件地址),应该是foo@bar.com(不带引号)。将行更改为:

$email = $email_tocheck;

或者根据需要消毒,例如对于空白:

$email = trim($email_tocheck);