Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UserEmail的验证在php中不起作用_Php_Html_Mysql - Fatal编程技术网

UserEmail的验证在php中不起作用

UserEmail的验证在php中不起作用,php,html,mysql,Php,Html,Mysql,我将验证POST变量userEmail。但问题是,即使我使用filter_var进行验证,它也无法工作,即使输入了错误的电子邮件,反而被插入。你能帮我找到解决办法吗 插入_dummy.php 除了使用不推荐的代码与MySQL交互之外,还插入了记录,因为尽管电子邮件验证工作正常,但代码的其余部分仍在执行 如果你插入一个模具;或将用户重定向到错误页,则不会创建记录 $userEmail=mysql_real_escape_string($_POST['userEmail']); if(!filter

我将验证POST变量userEmail。但问题是,即使我使用filter_var进行验证,它也无法工作,即使输入了错误的电子邮件,反而被插入。你能帮我找到解决办法吗

插入_dummy.php


除了使用不推荐的代码与MySQL交互之外,还插入了记录,因为尽管电子邮件验证工作正常,但代码的其余部分仍在执行

如果你插入一个模具;或将用户重定向到错误页,则不会创建记录

$userEmail=mysql_real_escape_string($_POST['userEmail']);
if(!filter_var($userEmail, FILTER_VALIDATE_EMAIL))
{
echo "Please Enter The Valid Email Address";
exit();
// Or add a redirection here
}

可以考虑使用标志变量$Value.< 请更换这个

   if(!filter_var($userEmail, FILTER_VALIDATE_EMAIL))
   {
      echo "Please Enter The Valid Email Address";
   }
有以下几点

    $userEmail=mysql_real_escape_string($_POST['userEmail']);
    $email = (preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/', $userEmail))?$userEmail:"invalid email";
    if($email == "invalid email")
    {
        echo "Please Enter The Valid Email Address";
        return; 
    }

不要使用不推荐使用且不安全的mysql函数。自2013年PHP 5.5以来,它们一直被弃用,并于2015年在PHP 7中被完全删除。改用MySQLi或PDO。据我所知,如果电子邮件无效,除了回显字符串之外,您实际上没有做任何其他事情。在此之后脚本仍在继续..永远不要以明文形式存储密码!。只存储密码哈希!使用PHP的和。如果您运行的PHP版本低于5.5,我真的希望您不是,那么您可以使用来获得相同的功能。
   if(!filter_var($userEmail, FILTER_VALIDATE_EMAIL))
   {
      echo "Please Enter The Valid Email Address";
   }
    $userEmail=mysql_real_escape_string($_POST['userEmail']);
    $email = (preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/', $userEmail))?$userEmail:"invalid email";
    if($email == "invalid email")
    {
        echo "Please Enter The Valid Email Address";
        return; 
    }