|
Posted by Jerry Stuckle on 03/20/06 04:40
Shelly wrote:
> "Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
> news:tfGdnWvTPJxom4bZRVn-qg@comcast.com...
>
>>Steve Chapel wrote:
>>
>>>Jerry Stuckle wrote:
>>>
>>>
>>>>pieter_hordijk@hotmail.com wrote:
>>>>
>>>>
>>>>>Why are you using three equal signs?
>>>>>
>>>>>The following is enough:
>>>>>if(($_POST['username'] == 'steven') && ($_POST['password'] ==
>>>>>'crocker'))
>>>>>
>>>>
>>>>Three equal signs checks to ensure they are both the same type and the
>>>>same value.
>>>>
>>>>Otherwise you can have the potential problem of the user entering a zero
>>>>for username and password. PHP could then try to compare as integers
>>>>instead of strings - and convert 'steven' and 'crocker' to zero. The
>>>>comparison would then be true.
>>>
>>>
>>>But because $_POST["username"] is a string, and 'steven' is a string, a
>>>string comparison will be done with ==, and the problem you mention with
>>>a numeric comparison won't happen, right? I just tried some PHP code with
>>>a simple variable ($str) in place of $_POST["username"] set to "0", and a
>>>string comparison is done.
>>
>>Steve,
>>
>>In this particular example, that's true - it will compare OK, at current
>>versions of PHP. But it's still a good habit to get into.
>
>
> Maybe it is the "C" (and Java) in me, but I always compare with
>
> if (!strcmp(first, second))
>
> or strcasecmp. That way I am always sure I am comparing the contents of
> strings. (Am I wasting my effort?)
>
> Shelly
>
>
Shelly,
$first === $second
does the same thing.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Navigation:
[Reply to this message]
|