我做了一個函數,檢查註冊過程中的某個用戶名是否包含某些我不希望用戶在其用戶名中包含的字符。它迴應用戶可以使用哪些字符。爲什麼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 =「!@〜'#$%^&*()+ =/\,;:[] {} |?,<>」中沒有分號 –