ID:               36799
 Updated by:       [EMAIL PROTECTED]
 Reported By:      cleo at anarki dot dk
-Status:           Open
+Status:           Bogus
 Bug Type:         *General Issues
 Operating System: WinXP, Mandriva Linux 2006
 PHP Version:      5.1.2
 New Comment:

$h = 25;
$res = (($h>=0) and ($h<=23));


Previous Comments:
------------------------------------------------------------------------

[2006-03-20 17:47:15] cleo at anarki dot dk

Description:
------------
Consider the following piece of code:
  $res= ($h>=0) and ($h<=23);
It could be used to determine if a user has submitted an hour between 0
and 23.

However, if the user enters 25, then the function evaluates to
true!!!!

If you reverse the order of the operands like this:
  $res = ($h<=23) and ($h>=0);
...then a $h value of 25 will make the function evaluate to false.

But now -1 will make it evaluate to true!

So clearly, this must be a major bug.
Best regards
Claus Holm, Copenhagen, Denmark

Reproduce code:
---------------
<? if (isset($_POST['test'])) {
    $hours= $_POST['e_hours'];
    $hours= (integer)$hours;
    echo "You entered $hours <br>";
    echo 'Now we test: ($hours>=0) and ($hours<=23)<br>';
    $test1= ($hours>=0) and ($hours<=23);
    echo $test1 ? "ok" : "nope";
    echo "<br>";
    echo 'And now we test: ($hours<=23)and($hours>=0)<br>';
    $test2= ($hours<=23) and ($hours>=0);
    echo $test2 ? "ok" : "nope";
  }
  else {
?>  Input an hour between 0 and 23:<br>
    <FORM action="<?=$_SERVER['PHP_SELF']?>" method="post">
      <INPUT type="text" name="e_hours" value=""><br>
      <INPUT type="submit" name="test" value="Run test">
    </form>
<?}
?>


Expected result:
----------------
If the value 25 is entered, then I should see this:


You entered 25
Now we test: ($hours>=0) and ($hours<=23)
nope
And now we test: ($hours<=23) and ($hours>=0)
nope

Actual result:
--------------
You entered 25
Now we test: ($hours>=0) and ($hours<=23)
ok
And now we test: ($hours<=23) and ($hours>=0)
nope


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=36799&edit=1

Reply via email to