ID: 47053 Updated by: fel...@php.net Reported By: mc at cowensw dot cxo dot uk -Status: Open +Status: Feedback Bug Type: Scripting Engine problem Operating System: Linux PHP Version: 6CVS-2009-01-09 (CVS) New Comment:
Show us the var_dump()'s output to the variable that produces the wrong empty() return. Thanks. Previous Comments: ------------------------------------------------------------------------ [2009-01-09 14:35:37] mc at cowensw dot cxo dot uk 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 this bug report at http://bugs.php.net/?id=47053&edit=1