0

如果您愿意让用户输入数据,我正在创建一个白名单。我被困在 elseif 语句上。

这是我的代码:

public function is_valid_data($data)
   {

     if(strlen($data > 9))
     {
       $this -> set_message('is_valid_data', 'Field needs to be less than 9 characters');
       return FALSE;
     }
     elseif(strlen($data < 9))
     {
       $this -> set_message('is_valid_data', 'Field can not be under 9 characters');
       return FALSE;
     }
     elseif((substr($str, 0, 1) !== 'testing') || (substr($str, 0, 1) !== 'test'))
     {
       $this -> set_message('is_valid_data', 'Please re-submit data!');
       return FALSE;
     }
     elseif(!preg_match("/^[0-9]/", $str))
     {
       $this -> set_message('is_valid_data', 'Please dont forget about the numbers!');
       return FALSE;
     }
     else
     {
       return TRUE;
     }

   }

出于某种原因,即使 $data 是 9 个字符,第一个 if 语句通过,然后第二个失败,即使 $data 正好是 9 个字符,我也会不断收到“字段不能低于 9 个字符”。我返回 false 是因为在另一个脚本中我有函数调用 is_valid_data($data) 并且如果此函数返回 false 那么它将向用户返回错误。如果它返回true,那么数据是有效的,我们可以继续

我似乎无法摆脱这个问题。

4

4 回答 4

3
if(strlen($data) > 9)

代替

if(strlen($data > 9))
于 2013-05-21T17:45:02.940 回答
0

当您使用$data < 9它时,它意味着它应该小于 9,如果您希望它也允许 9,那么您将需要<=小于或等于。

于 2013-05-21T17:44:15.663 回答
0

该代码有一些问题 $str 是什么这是 Class 的成员 它是一个全局的我需要知道这些事情才能提供帮助。谢谢

于 2013-05-21T18:16:59.120 回答
0

我认为您检查条件错误。你需要的是更换

if(strlen($data > 9))

if(strlen($data) > 9)

第二个if陈述中也存在相同的句法问题。你可能想要的是替换

elseif(strlen($data < 9))

经过

elseif(strlen($data) < 9)
于 2013-05-21T17:45:23.147 回答