ID: 26994 User updated by: kavol at email dot cz Reported By: kavol at email dot cz Status: Bogus Bug Type: Arrays related Operating System: linux (any?) PHP Version: 4.3.4 New Comment:
finally, I got it working (on another machine - there is something rotten in mine) and I cannot confirm this bug on newer version of PHP maybe, it appears only in some rare configuration... for [EMAIL PROTECTED]: if there is something wrong with my program and not with php, then could you explain how it is possible, that the same program doesn't work on one version and works on the other? I thought that for the same code should be given always the same result - either good or bad ... Previous Comments: ------------------------------------------------------------------------ [2004-01-25 15:09:49] kavol at email dot cz > RTFM about sessions and how to use them correctly. please could you be more specific? of course I have read about sessions and I can't remeber of any place saying that the contents of $_SESSION[something] can be randomly overwritten ... or do you mean that i left out session_start() from the example so as many other lines of the original code? > This has nothing to do with extract(). if a variable's value is changed after calling extract() then it has to do something with what? p.s. as for reproducing the error with newer snapshot: I decided to try to recompile apache - now I'm stuck with that, damn :-( ------------------------------------------------------------------------ [2004-01-24 23:52:38] [EMAIL PROTECTED] Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php RTFM about sessions and how to use them correctly. This has nothing to do with extract(). ------------------------------------------------------------------------ [2004-01-23 17:45:08] kavol at email dot cz unfortunately, I am unable to build the apache module from that source ... "configure --with-apxs2=/usr/sbin/apxs2" says this: [...] checking for Apache 2.0 filter-module support via DSO through APXS... no checking for Apache 2.0 handler-module support via DSO through APXS... expr: non-numeric argument ./configure: line 5114: test: : integer expression expected ./configure: line 5116: test: : integer expression expected yes [...] which seems to be a bit suspicious (although the result is "yes") and then "make" goes well except that the module is missing ... I got cli version (working...) but that's all I'll try to work it out asap, until then I can't confirm if the CVS version is ok for me, sorry ... ------------------------------------------------------------------------ [2004-01-21 11:55:49] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip Works fine with latest CVS of PHP4. ------------------------------------------------------------------------ [2004-01-21 11:02:56] kavol at email dot cz Description: ------------ after extract()ing an array containing a "key" => "data" with "key" being the same name as in $_SESSION, not only $key = "data", but the content of $_SESSION["key"] gets overwritten with "data" too Reproduce code: --------------- $jazyky = array (array ("jazyk" => "Čeština", "kod" => "cs", "jak" => "česky"), array ("jazyk" => "English", "kod" => "en", "jak" => "English")); $_SESSION["jazyk"] = "cs"; $jazyk = $_SESSION["jazyk"]; // this IS NOT assigment by reference ! (from manual: "the assignment copies the original variable to the new one") echo $_SESSION["jazyk"]; foreach ($jazyky as $j) { extract ($j); echo "<a href='?jazyk=$kod'><img alt=\"$jak\" class=\"vlajka\" src=\"images/flag-$kod.png\"> $jazyk</a><br>"; echo $_SESSION["jazyk"]; }; $jazyk = $_SESSION["jazyk"]; // this is the problem - I wanted to restore the previosly overwritten $jazyk but I found $_SESSION["jazyk"] to be overwritten too! Expected result: ---------------- cs <a href='?jazyk=cs'><img alt="česky" class="vlajka" src="images/flag-cs.png"> Čeština</a><br> cs <a href='?jazyk=en'><img alt="English" class="vlajka" src="images/flag-en.png"> English</a><br> cs Actual result: -------------- cs <a href='?jazyk=cs'><img alt="česky" class="vlajka" src="images/flag-cs.png"> Čeština</a><br> Čeština <a href='?jazyk=en'><img alt="English" class="vlajka" src="images/flag-en.png"> English</a><br> English ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=26994&edit=1