我正在处理一个登录表单及其会话。现在我收到此错误:
解析错误:语法错误,在 /home/xxx/domains/xxx/public_html/server/include/session.php 中出现意外的“ strlen”(T_STRING)第 130
行
这是错误所在的行:
if(!$subuser strlen($subuser = trim($subuser)) == 0){
这是整个代码:
function login($subuser, $subpass, $subremember){
global $database, $form; //The database and form object
/* Username error checking */
$field = "user"; //Use field name for username
if(!$subuser strlen($subuser = trim($subuser)) == 0){
$form->setError($field, "* Username not entered");
}
else{
/* Check if username is not alphanumeric */
if(!eregi("^([0-9a-z])*$", $subuser)){
$form->setError($field, "* Username not alphanumeric");
}
}
答案 0 :(得分:0)
这行代码的语法无效:
if(!$subuser strlen($subuser = trim($subuser)) == 0){
考虑将其更改为:
if(!strlen(trim($subuser))) {
答案 1 :(得分:0)
您不需要在第一个表达式中对$subuser
进行两次检查-并且如果您需要这样做,则应使用||
来将它们分开。
使用ctype_alnum()
而非preg_match()
检查字母数字字符。
function login($subuser, $subpass, $subremember){
global $database, $form; //The database and form object
$field = "user"; //Use field name for username
if (!strlen($subuser = trim($subuser))) {
$form->setError($field, "* Username not entered");
//} elseif (!preg_match('/^[\da-z]+$/i', $subuser)) {
} elseif (!ctype_alnum($subuser)) {
$form->setError($field, "* Username not alphanumeric");
}
}
$subuser
值,然后检查其长度,以使第二个条件不接收带有前导或尾随空格的字符串。这里是demonstration。