验证用户名,密码和电子邮件与PHP

问题描述:

我正在验证用户名,传递和电子邮件与PHP。我需要确保自己做到了,所以没有人可以绕过登录页面。验证用户名,密码和电子邮件与PHP

这是价值观:

$email=$_POST['email']; 
$username=$_POST['uname']; 
$passwd=$_POST['pass']; 
$passwd2=$_POST['passcopy']; 

到目前为止,我有电子邮件验证:

if(!(preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $_POST['email']))) 
    die(msg(0,"You haven't provided a valid email")); 

密码等于:

if ($passwd != $passwd2) { 
die(msg(0,"Passwords are not equal")); 
} 

密码长度:

if ((strlen($passwd) < 8) || (strlen($passwd) > 16)) { 
die(msg(0,"Your password must be between 8 and 16 characters. Please type in a longer password")); 
} 

我知道我需要验证用户名。我在考虑只使用小写字母a-z0-9以避免使用类似用户名的人?然后密码,我应该允许在密码中输入哪些字符?

PS。我仍然不明白preg_match和ereg。如果有人可以解释这个"/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+并为我的用户名和密码验证做一个preg_match,这将是非常有帮助的。

字符串^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+是一个正则表达式,它描述了您验证电子邮件字符串的模式。

让我为你打破不同的部分。

^这表示模式应该在行首开始匹配。

[\.A-z0-9_\-\+]+这部分是由两个子部分组成,第一部分描述一类字符[\.A-z0-9_\-\+],然后a +表示您想要一个或多个以前的类。

[@]恰好匹配一个@符号。

[A-z0-9_\-]+之后的另一类字符+意味着您需要一个或多个类中的字符。

PS。我仍然不明白preg_match和ereg。如果有人能解释这个

这是一个非常糟糕的例子,如何检查一个有效的电子邮件地址。尝试谷歌更好的例子。请注意,仅仅因为它匹配正确正则表达式并不意味着该人正在接收邮件 - 如果您需要验证电子邮件地址,则更好的方法是将激活URL或初始密码发送到提供的地址。

做出的preg_match我的用户名和密码验证

嗯,在正则表达式的教训将需要相当长的时间 - try this

这真的无关紧要的用户名是什么(或密码)包含只要组合是唯一的,你handle the data properly

C.

preg_matchereg是通过regular expression匹配字符串的两种方式。 preg函数使用PCRE(perl兼容的正则表达式)引擎,并且是php推荐的正则表达式函数; ereg函数现在已被弃用。

我不会去解释这个模式,因为它在其他答案中已经介绍过了,但是如果你想要一个非常彻底的正则表达式教程(并且免费,需要引导),请查看regular-expressions.info上的tutorial

"/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+/"// write same checking on same line 

#1# ^[\.A-z0-9_\-\+]+ 

字符必须用(.A-Z0-9 _- +)的一个或多个前一个字符到[]

#2# [@] 

这个字符不能inputed ///投入到垃圾一同启动不进入他

#3# [A-z0-9_\-]+$// it should be ending with $char

字符串包含字符之间(A-Z0-9_-)符号的平均值加上一个或多个前一个字符 和$是char必须与上一个结束在方括号中的ious字符。

u可以使用简单的正则表达式是相同的,以你以前..

/^[A-z0-9_\-\[email protected]]+$/// My regex script do same as your previous code

希望它可以帮助ü

电子邮件验证:

if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) == TRUE) { 
    $email = $_POST["email"]; 
} else { 
    echo "email error"; 
    die; 
} 

http://php.net/manual/en/filter.filters.validate.php