ID:               28711
 User updated by:  sikachu at beezone dot net
 Reported By:      sikachu at beezone dot net
 Status:           Open
 Bug Type:         Unknown/Other Function
 Operating System: Windows 2000
 PHP Version:      5.0.0RC3
 New Comment:

Well ... I used isset() with $QUERY_STRING to check the query all the
time. Also, my server still PHP 4.3.7 and it's at
http://ragnarok.beezone.net . 

On there, If you type in 'http://ragnarok.beezone.net', it will load
itself because the isset($QUERY_STRING) is false! And if I type
something like 'http://ragnarok.beezone.net/?board' That will trigger
the code and redirect to the page we provide !

Can somebody test and confirm that just because my server use cgi
(php.exe) instead of isapi module (php5isapi.dll)?

Thanks anyway, imprestavel. I think if I change the script whole site
to use empty(), it may works. But I sill confuse with this behavior.


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

[2004-06-10 09:18:43] imprestavel at gameguru dot com dot br

I think php4 does that too (just tested, but register_globals is off)
Maybe you are confusing isset with empty


"isset -- Determine whether a variable is set
...
Returns TRUE if var exists; FALSE otherwise."


"empty -- Determine whether a variable is empty
...
empty() returns FALSE if var has a non-empty and non-zero value. In
otherwords, "", 0, "0", NULL, FALSE, array(), var $var;, and objects
with empty properties, are all considered empty. TRUE is returned if
var is empty."


You may find that information here:
http://www.php.net/isset
http://www.php.net/empty

Hope it helps

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

[2004-06-09 16:46:18] sikachu at beezone dot net

Clearify the bug summary ...

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

[2004-06-09 16:44:18] sikachu at beezone dot net

Change the version number in topic from RC2 to RC3 ...

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

[2004-06-09 16:42:41] sikachu at beezone dot net

Description:
------------
I upgraded from PHP 4.3.4 to PHP 5.0 RC3 yesterday. When I tried to run
the script that check for the query string and then refresh to the
page, the query string return the invalid value. This behavior I found
only in PHP 5.0 RC3

I'll show you the result with these thing:
echo $QUERY_STRING;
isset($QUERY_STRING);
$QUERY_STRING == "";

For example, assume that the script URL is
http://somewhere.com/index.php

If I call it like this: http://somewhere.com/index.php?foo

echo $QUERY_STRING;    // show foo
isset($QUERY_STRING);  // return true
$QUERY_STRING == "";   // return false

But, here is the problem. If I call it like this:
http://somewhere.com/index.php

echo $QUERY_STRING;    // show ""(nothing)
isset($QUERY_STRING);  // return true  << unexpected
$QUERY_STRING == "";   // return true

The code that I use for test will be in the next section.

My PHP configuration based on php.ini-dist. I changed register_global
to be On, and then add php_mysql & php_mysqli extension to it.

Reproduce code:
---------------
if(isset($QUERY_STRING))
{
        echo "Your query string is defined\n";
}
if($QUERY_STRING == "")
{
        echo "Your query string is null\n";
}
if($QUERY_STRING == " ")
{
        echo "Your query string contain just a space\n";
}

echo "Here is your query string: '".$QUERY_STRING."'";

Expected result:
----------------
Your query string is null
Here is your query string: ''

Actual result:
--------------
Your query string is defined
Your query string is null
Here is your query string: ''


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


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

Reply via email to