我做了一个函数,检查注册过程中的某个用户名是否包含某些我不希望用户在其用户名中包含的字符。它回应用户可以使用哪些字符。为什么strpos在这里不起作用?
public function checkUsername($username){
if(!empty($username)){
$exceptions= "[email protected]~`#$%^&*()+=/\,;:[]{ }|?,<>"
this is line 26 from the error ->if(strpos($username, $exceptions) !=== false){
//here it means that something was found
echo "Cannot contain special characters except - and _ .";
return false;
}//since it returns false, nothing after this gets executed.
if(strlen($username) < 6){
echo "Username must be at least 6 characters long to register.";
return false;
}
$stmt = $this->db->prepare("SELECT username FROM users WHERE BINARY username = ? ");
$stmt->bindParam(1,$username);
$stmt->execute();
if($stmt->rowCount() == 1){
echo "Sorry username already exists";
return false;
} else{
return true;
}
}
}//end of checkUsername
它给了我一个解析错误:语法错误,意想不到的T_IF上线26
通常这样的错误发生在上面的一行,而不是实际的行号本身。似乎你在'$ exceptions =“!@〜'#$%^&*()+ =/\,;:[] {} |?,<>”中没有分号 –