ID: 16102 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Analyzed Bug Type: Session related Operating System: Windows 2000/XP PHP Version: 4.1.2 New Comment:
I recently upgraded to 4.12 running W98: Apache 1.3.19, Win32 PHP/4.1.3-dev running; reg_globals OFF; trying to work my way through sessions. Yikes!! It is hard to figure how it works or when to use $_SESSION or HTTP_SESSION_VARS, w/ or without session_register(). /* this seems to ~work sort of, maybe... $ship_type = $HTTP_SESSION_VARS['ship_type']; //or with $_SESSION.. which seems to be erratic session_unregister("ship_type"); $ship_type= 'trs'; //$ship_type + 1; session_register("ship_type"); flush(); // This allows other pages to show the revised value via $_SESSION["ship_type"] Now if I could just erase a pair in an array with unset... Keep up the goodwork! Previous Comments: ------------------------------------------------------------------------ [2002-03-25 20:14:53] [EMAIL PROTECTED] This comment is just to say that I am experiencing the same problem with PHP 4.1.2 as CGI, Windows 98 SE German, Apache 1.3.20, using php.ini with register_globals turned OFF and neither $_SESSION nor $HTTP_SESSION_VARS is working. A session file is created in the sessions directory but no variables are stored within it. A typical error I get when trying to use a variable previously stored in $_SESSION is: Warning: Undefined index: text in session_2.php on line 3. I mistakenly reported this as a new bug to http://bugs.php.net/bug.php?id=16273&edit=2 but I set that to "Duplicate" now, so I hope it will be ok. Sorry. Robert ------------------------------------------------------------------------ [2002-03-20 17:57:04] [EMAIL PROTECTED] Using the $HTTP_SESSION_VARS["foo"] = "bar" is all well and good, but one of the major points about 4.1.x was the new $_SESSION array and its global scope. Infact it got a big mention on the download page. Its only fair to put a big mention that its broke in 4.1.2 as I'm sure that a few devs (myself included) now have broken code using $_SESSION["foo"] = "bar" which is silly to take back to the old way of doing it. Either make a note or release a patch! FWIW, this happens on Apache 1.2.23 in SAPI mode and Apache 2.0.32 beta in CGI mode ------------------------------------------------------------------------ [2002-03-20 12:55:14] [EMAIL PROTECTED] Using session_start() and setting $HTTP_SESSION_VARS['my_Var'] to any value mays help. Here is my code to use the $_SESSION array : //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ session_start(); if (!isset($_SESSION["count"])) { $HTTP_SESSION_VARS["count"] = 0; } $_SESSION["count"]++; echo $_SESSION["count"]; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PHP Version : 4.1.2 OS : Win2K Server Webserver : APACHE 1.3.22 PHP running as the php.exe ------------------------------------------------------------------------ [2002-03-19 11:21:04] [EMAIL PROTECTED] Fix it and release a new version or at least make a note on the downloadpage. ------------------------------------------------------------------------ [2002-03-19 00:39:08] [EMAIL PROTECTED] After reading more posts on this subject, I went back and put some debug code into my application. I see now that the POST variables are fine; the difficulty is with the session variables. The problem appears to be somewhere in php4ts.dll, which is copied to \WINNT\system32 as part of the installation. I mentioned earlier that the version from the link in http://www.zend.com/zend/week/week77.php was OK. The link on that page is now dead. I'm running: Apache_1.3.23-Mod_SSL_2.8.7-OpenSSL_0.9.6c Windows 2000 Pro SP2 + pre-SP3 updates PHP running as module (php4apache.dll); no CGI MySQL 4.0.1-alpha-win This problem with session variables is a big deal, but there is no warning on the download page for Windows users. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/16102 -- Edit this bug report at http://bugs.php.net/?id=16102&edit=1