我的目的是让表单在用户名输入不以字母开头的情况下警告用户。不幸的是,尽管输入的用户名以字母开头,条件仍然成立。
下面的代码是变量,其中包含一个数组,用于存储所有26个大写和小写字母。
$alphas = array_merge(range('a', 'z'), range('A', 'Z'));
然后下面的代码用于输出错误消息。
if (empty($username)){
array_push($errors, "*Username cannot be blank<br>");
}else if(!preg_match("/^[a-zA-Z0-9_]*$/",$username)){
array_push($errors, "*Username can only contain alpha-numeric characters or an underscore<br>");
}else if($username[0] !== $alphas){
array_push($errors, "*Username must begin with a letter<br>");
}
条件是“ if($ username [0]!== $ alphas)”,但是它一直返回 TRUE ,这意味着它将显示消息“ *无论用户名输入的第一个字母如何,用户名都必须以字母开头。
如何解决这个问题?
答案 0 :(得分:0)
下面的代码可以正常工作.....
$alphas = array_merge(range('a', 'z'), range('A', 'Z'));
$errors=array();
$username="username";
echo $username[0];
if (empty($username)){
array_push($errors, "*Username cannot be blank<br>");
}else if(!preg_match("/^[a-zA-Z0-9_]*$/",$username)){
array_push($errors, "*Username can only contain alpha-numeric characters or an underscore<br>");
}else if(!in_array($username[0],$alphas)){
array_push($errors, "*Username must begin with a letter<br>");
}else{
echo "correct username";
// do what ever you want to code but do not hurt you mother :) :)
die;
}
print_r($errors);