if(strlen($data) > 9)
instead of
if(strlen($data > 9))
Вопрос
I am creating a whitelist if you will for a user to input data. I am getting stuck on the elseif statements.
This is my code :
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;
}
}
For some reason even if $data is 9 characters the first if statements goes through, then the second one fails and I keep getting 'Field can not be under 9 characters' even though the $data is exactly 9 characters. I am returning false because in another script I have the function call is_valid_data($data) and if this function returns a false then it will return the error to the user. If it returns true then the data is valid and we can continue
I can't seem to shake this issue.
Решение
if(strlen($data) > 9)
instead of
if(strlen($data > 9))
Другие советы
When you're using $data < 9
it means it should be smaller then 9, if you want it to allow 9 as well then you'll need <=
smaller than or equal to.
I think you are checking the conditions wrong. What you need is replace the
if(strlen($data > 9))
with
if(strlen($data) > 9)
The same syntctical problem is also present in the second if
statement. What you might want is to replace
elseif(strlen($data < 9))
by
elseif(strlen($data) < 9)
There are a few things wrong with that code what is $str is this a member of Class is it a global i need to know these things in order to help. Thanks