我正在为我的注册表单进行所有检查,并在检查字段的长度是否大于数字时,它给了我一个错误。不确定这里有什么意外的。
问题可能是面对我的盯着看,但我现在无法弄明白。
这是我收到的错误:
解析错误:语法错误,意外'!'在第15行的C:\ users \ user \ xampp \ htdocs \ CompanyProject \ Signup.php
这是我用来完成我想要做的PHP代码:
if($password == $confirmpass){
if(!empty($password) AND !empty($username) AND !empty($email)){
if (strlen($username) >=3 && strlen(trim($username)) !== 0 && strlen($password) >=3 && strlen(trim($password)) !== 0 && strlen($email) >=3 && strlen(trim($email)) !== 0) {
if(strlen($username) !<13){
if(strlen($password) !<17){
$sql ="INSERT INTO users(user,pass,email) VALUES('".$username."','".md5($password)."','".$email."')";
mysql_query($sql);
header('Location: Login.php');
}else{
echo "Your password must be between 3 and 17 characters"
}
}else{
echo "Your username must be between 3 and 13 characters."
}
}else{
echo "Each field needs atleast 3 characters.";
}
}else{
echo "Please fill out the form.";
}
}else{
echo ("Your passwords do not match");
}
}
这些行中出现错误:
if(strlen($username) !<13){
if(strlen($password) !<17){
提前致谢。
答案 0 :(得分:3)
以下几行:
if(strlen($username) !<13){
if(strlen($password) !<17){
无效。他们应该使用&gt; =。 e.g。
if(strlen($username) >= 13){
if(strlen($password) >= 17){
即便如此,我很确定你想写
if(strlen($username) <= 13){
if(strlen($password) <= 17){
因为您的错误消息说明了您的用户名和密码的规则!
我不确定我是否看过任何C衍生语言!&lt;和!&gt;
ADDENDUM:您还缺少电子邮件长度的上限检查(维基百科页面here上有一个)。
你应该考虑编写一个验证器函数,分解那些令人讨厌的嵌套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');
答案 1 :(得分:0)
您的语法不正确,您试图否定比较运算符,但这不是PHP中的语法。 callText
和>
的唯一有效形式是:
<
或>=