RE: [PHP] Validation function doesn't work (sort of...)
| From: | Jonathan Wilkes | Date: | Tue, 27 May 2003 16:17:11 +0000 |
| Subject: | RE: [PHP] Validation function doesn't work (sort of...) | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-149143@lists.php.net to get a copy of this message | ||
ok, I admit it, I must have read the documentation wrong concerning "===",
but I have only been writing PHP for a week or so.
But I do love it, :-)
Regards to all,
Jonathan
-----Original Message-----
From: Marek Kilimajer [mailto:kilimajer@webglobe.sk]
Sent: 27 May 2003 17:17
To: Jonathan Wilkes
Cc: php-general@lists.php.net
Subject: Re: [PHP] Validation function doesn't work (sort of...)
$a === $b Identical *TRUE* if $a is equal to $b, and they are
of the same type. (PHP 4 only)
Jonathan Wilkes wrote:
>That's not his problem, he is using "===" euality check which just checks
>the "type" of data, hence his code is returning TRUE for every item in the
>array.
>
>cheers,
>Jonathan
>
>-----Original Message-----
>From: Philip Olson [mailto:philip@cornado.com]
>Sent: 27 May 2003 17:03
>To: Jason Lange
>Cc: php-general@lists.php.net
>Subject: Re: [PHP] Validation function doesn't work (sort of...)
>
>
>
>When you found success in the loop you really should
>end the loop otherwise it will keep checking and will
>yield results as you describe. For example:
>
>while (1) {
> if (something) {
> $foo = true;
> break;
> } else {
> $foo = false;
> }
>}
>
>When $foo = true, the loop ends, and $foo will indeed
>equal true. Although in your code below I see no need
>to even define $retVal, just return true. If the loop
>never ends up returning true ... you know to return
>false.
>
>while (1) {
> if (something) {
> return true;
> }
>}
>return false;
>
>
>Regards,
>Philip
>
>
>
>On Tue, 27 May 2003, Jason Lange wrote:
>
>
>
>>Hello all,
>>
>>I've created this nice validation function which compares a submitted
>>username and password to an array of acceptable values. However, at the
>>moment it will only match the *last* key in the array. Even when I
>>/*know*/ that I typed in the correct values (typed them in Notepad and
>>copied and pasted them into the form) it still doesn't work. I realize
>>this isn't the *most secure* way to do it, but it should be adaquate for
>>what the purpose. No /really/ sensitive information is being hidden.
>>
>><?php
>> function _validateLogin($uploadedUser, $uploadedPass)
>> {
>> $md5 = md5('iseeYou'); // create the MD5 salt for crypt()
>>
>> // array of valid users
>> $validUser[0] = crypt('user1', $md5);
>> $validUser[1] = crypt('user2', $md5);
>> $validUser[2] = crypt('user3', $md5);
>>
>> // array of valid passwords
>> $validPass[0] = crypt('pass1', $md5);
>> $validPass[1] = crypt('pass2', $md5);
>> $validPass[2] = crypt('pass3', $md5);
>>
>> $cryptUser = crypt($upUser, $md5); // crypt(ed) username for
>>validation
>> $cryptPass = crypt($upPass, $md5); // crypt(ed) password for
>>validation
>>
>> $vCount = count($validUser); // get number of valid usernames
>>
>> // loop through results - if BOTH username & password match
>>return TRUE
>> // otherwise return FALSE
>> for ($i = 0; $i < $vCount; ++$i) {
>> if (($cryptUser === $validUser[$i]) &&
>> ($cryptPass === $validPass[$i])) {
>> $retVal = true;
>> } else {
>> $retVal = false;
>> }
>> }
>> return $retVal; // return true if valid false otherwise
>> }
>>?>
>>
>>Thanks in advance for your help!
>>Jason
>>
>>
>>
>>
>>
>
>
>
>