为什么我的不是(!)意外?
这个问题在这里已经有了答案:
以下几行:
if(strlen($username) !<13){
if(strlen($password) !<17){
无效。 他们应该使用> =。 例如
if(strlen($username) >= 13){
if(strlen($password) >= 17){
即使那样,我很确定你想写
if(strlen($username) <= 13){
if(strlen($password) <= 17){
因为您的错误消息说明了您的用户名和密码的规则!
我不确定我见过任何C衍生语言使用!<和!>
附加:您还缺少电子邮件长度的上限检查(这里有一个维基百科页面)。
你应该考虑编写一个验证器函数,分解那些非常难以维护的嵌套ifs。
作为10的先发者:
if($password != $confirmpass){
echo ("Your passwords do not match");
return false;
}
// what about weird characters?
if (empty($username) || strlen($username) < 3 || strlen($username) > 13) {
echo "Your username must be between 3 and 13 characters.";
return false;
}
// what about weird characters?
if (empty($password) || strlen($password) < 3 || strlen($password) > 17) {
echo "Your password must be between 3 and 17 characters.";
return false;
}
// you'll want some kind of regex to validate that the email is well formed
if (empty($email) || strlen($email) < 3 || strlen($email) > 254) {
echo "Your email must be between 3 and 254 characters.";
return false;
}
$sql ="INSERT INTO users(user,pass,email) VALUES('".$username."','".md5($password)."','".$email."')";
mysql_query($sql);
header('Location: Login.php');
您的语法不正确,您试图否定比较运算符,但这不是PHP中的语法。 的唯一有效的形式>
和<
是:
>=
或<=