#47053 [NEW]: empty($FRED) returns false incorrectly
From: mc at cowensw dot cxo dot uk
Operating system: Linux
PHP version: 6CVS-2009-01-09 (CVS)
PHP Bug Type: Scripting Engine problem
Bug description: empty($FRED) returns false incorrectly
Description:
------------
Hosting moved to new version 8-1-2009. Since then in certain situations
the empty() function now returns wrong value. Argument holds space, but
function returns "not empty".
Tested all normal empty functions, and they are OK
(http://www.dev.holidaynetwork.co.uk/Test3.php)
In this case $purchaseToken is derived from a row in a Session Variable.
I have tried to reproduce this with smaller simpler scripts, but with no
success.
Reproduce code:
---------------
Sample extract from script:
echo ' purchaseToken7 >>'.$purchaseToken7.'<< <br>';
echo ' rhf >>'.$rhf.'<< <br>';
echo ' $_SESSION["Sess_purchaseToken7"] array >>';
print_r($_SESSION["Sess_purchaseToken7"]); echo '<< <br>';
echo ' $_SESSION["Sess_purchaseToken7"][$rhf] array
>>'.$_SESSION["Sess_purchaseToken7"][$rhf].'<< <br>';
echo ' strlen(purchaseToken7) >>'.strlen($purchaseToken7).'<<
<br>';
echo ' bin2hex(purchaseToken7) >>'.bin2hex($purchaseToken7).'<<
<br>';
if (!empty($purchaseToken7) ) echo "purchaseToken not empty<br>"; else
echo "purchaseToken empty<br>" ;
if (empty($purchaseToken7) ) echo "purchaseToken empty<br>"; else echo
"purchaseToken not empty <br>";
$ShowDiag = 0;
exit()
Expected result:
----------------
Sample Output
Shows variable purchaseToken is space,
However empty function returns "not empty"
purchaseToken7 >> <<
rhf >>9<<
$_SESSION["Sess_purchaseToken7"] array >>Array ( [0] => 0 [1] => [2] =>
[3] => 0 [4] => 0 [5] => [6] => [7] => [8] => [9] => ) <<
$_SESSION["Sess_purchaseToken7"][$rhf] array >> <<
strlen(purchaseToken7) >>1<<
bin2hex(purchaseToken7) >>20<<
purchaseToken empty
purchaseToken empty
Actual result:
--------------
Sample Output
Shows variable purchaseToken is space,
However empty function returns "not empty"
purchaseToken7 >> <<
rhf >>9<<
$_SESSION["Sess_purchaseToken7"] array >>Array ( [0] => 0 [1] => [2] =>
[3] => 0 [4] => 0 [5] => [6] => [7] => [8] => [9] => ) <<
$_SESSION["Sess_purchaseToken7"][$rhf] array >> <<
strlen(purchaseToken7) >>1<<
bin2hex(purchaseToken7) >>20<<
purchaseToken not empty
purchaseToken not empty
--
Edit bug report at http://bugs.php.net/?id=47053&edit=1
--
Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=47053&r=trysnapshot52
Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=47053&r=trysnapshot53
Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=47053&r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=47053&r=fixedcvs
Fixed in CVS and need be documented: http://bugs.php.net/fix.php?id=47053&r=needdocs
Fixed in release: http://bugs.php.net/fix.php?id=47053&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=47053&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=47053&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=47053&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=47053&r=support
Expected behavior: http://bugs.php.net/fix.php?id=47053&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=47053&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=47053&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=47053&r=globals
PHP 4 support discontinued: http://bugs.php.net/fix.php?id=47053&r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=47053&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=47053&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=47053&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=47053&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=47053&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=47053&r=mysqlcfg
Thread (2 messages)
- mc at cowensw dot cxo dot uk