我应该使用正则表达式注册/登录表单吗?

时间:2016-04-19 08:36:31

标签: php regex login

使用mysql_real_escape_string和strip_tags输入用户名/密码是否足够,还是应该包含正则表达式?该网站使用弃用的MYSQL。

例如:

if (!preg_match( "/^[\w-\.]+@([\w-]+\.)+[\w-]{0,3}$/",$_POST['email'])) {
    $error = "Invalid email or password";

2 个答案:

答案 0 :(得分:2)

在将数据传递给MySQL之前验证电子邮件(输入)总是更好,幸运的是,您不必使用regex进行电子邮件验证,PHP具有内置函数{{ 3}}用于验证。这比正则表达式验证要快得多。

语法将是:

if(! filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    //Email not valid, 
    $error = "Invalid email or password";
}

答案 1 :(得分:1)

使用RegEx,您可以验证用户名/密码的格式。 您使用的正则表达式不可靠,例如它与email@blablabla.info或任何超过3个字符的新TLD不匹配。

对于电子邮件,我使用这个:

/^[[:alnum:]|\.|\-|_]+@[[:alnum:]|\.|\-|_]+[A-Z]+$/i

请注意,对于密码,您必须根据要允许的字符编写不同的支票。