Im, выполняющий функцию, которая проверяет, содержит ли определенное имя пользователя в процессе регистрации определенные символы, которые я не хочу, чтобы пользователи имели свое имя пользователя. И это повторяет пользователю, какие символы они могут использовать.Почему 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 ="! @ ~ '# $%^& *() + =/\,;: [] {} |?, <>" –