ID:               25934
 User updated by:  php at webfreezer dot com
 Reported By:      php at webfreezer dot com
 Status:           Bogus
 Bug Type:         Session related
 Operating System: SuSe Linux 8.1
-PHP Version:      4.3.3
+PHP Version:      4.3.4
 New Comment:

This still happens in Version 4.3.4 which is now installed on the live
system.

What I do:
- ini_set(session settings...)
- session_start()
- accessing the session values via $_SESSION
- I donīt use sesson_register() and session_unregister()
- Post a form via GET -> error occurs? -> redirect via header() with
attached SID -> display page -> PHP ignores given sessionID
- URL e.g.
error.php?e=noresults_city&qid=1&sessionID=92f9dcf7a0d89eaa2b0bc8f2e4dfd460&token=d03d28781b196bd362b9aeb7844e8e85
- session_id() however is different from "$_GET[session_name()]" then
- The error occurs everytime a new session is used (e.g. accessing the
website and submitting the form for the first time int the session)

I found at least a workaround for that:

// Auto-Reset to correct session data
$sn=session_name();
if($_GET[$sn] != session_id())
{
        $sessionSavePath=ini_get("session.save_path");
        $oldSessionContent=file_get_contents($sessionSavePath."/sess_".$_GET[$sn]);
        session_decode($oldSessionContent);
}

If the error occurs it is now fixed on-the-fly.
This works _everytime_ when the error occurs.
As I said before the session file exists, it is readable and can be
accessed without any problems, so itīs no wonder this workaround works.


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

[2003-11-03 13:49:08] [EMAIL PROTECTED]

As you don't give an example script we have to assume that you're just
doing something wrong. This works just fine for me.


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

[2003-11-03 06:41:08] php at webfreezer dot com

Additional note:
"DOMAINNAME" in session.save_path is just the concealed domain name.

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

[2003-11-03 06:39:24] php at webfreezer dot com

This is an excerpt of ini_get_all vardumpīed:

 [session.auto_start] array(3) => {
    [global_value] string(1) => "0"
    [local_value] string(1) => "0"
    [access] int(7) => 
  }
  [session.bug_compat_42] array(3) => {
    [global_value] string(1) => "1"
    [local_value] string(1) => "1"
    [access] int(7) => 
  }
  [session.bug_compat_warn] array(3) => {
    [global_value] string(1) => "1"
    [local_value] string(1) => "1"
    [access] int(7) => 
  }
  [session.cache_expire] array(3) => {
    [global_value] string(2) => "60"
    [local_value] string(3) => "180"
    [access] int(7) => 
  }
  [session.cache_limiter] array(3) => {
    [global_value] string(7) => "nocache"
    [local_value] string(7) => "nocache"
    [access] int(7) => 
  }
  [session.cookie_domain] array(3) => {
    [global_value] string(0) => ""
    [local_value] string(0) => ""
    [access] int(7) => 
  }
  [session.cookie_lifetime] array(3) => {
    [global_value] string(1) => "0"
    [local_value] string(1) => "0"
    [access] int(7) => 
  }
  [session.cookie_path] array(3) => {
    [global_value] string(1) => "/"
    [local_value] string(1) => "/"
    [access] int(7) => 
  }
  [session.cookie_secure] array(3) => {
    [global_value] string(0) => ""
    [local_value] string(0) => ""
    [access] int(7) => 
  }
  [session.entropy_file] array(3) => {
    [global_value] string(0) => ""
    [local_value] string(0) => ""
    [access] int(7) => 
  }
  [session.entropy_length] array(3) => {
    [global_value] string(1) => "0"
    [local_value] string(1) => "0"
    [access] int(7) => 
  }
  [session.gc_divisor] array(3) => {
    [global_value] string(3) => "100"
    [local_value] string(3) => "100"
    [access] int(7) => 
  }
  [session.gc_maxlifetime] array(3) => {
    [global_value] string(4) => "1440"
    [local_value] string(4) => "1440"
    [access] int(7) => 
  }
  [session.gc_probability] array(3) => {
    [global_value] string(1) => "1"
    [local_value] string(1) => "1"
    [access] int(7) => 
  }
  [session.name] array(3) => {
    [global_value] string(9) => "PHPSESSID"
    [local_value] string(9) => "sessionID"
    [access] int(7) => 
  }
  [session.referer_check] array(3) => {
    [global_value] string(0) => ""
    [local_value] string(1) => "0"
    [access] int(7) => 
  }
  [session.save_handler] array(3) => {
    [global_value] string(5) => "files"
    [local_value] string(5) => "files"
    [access] int(7) => 
  }
  [session.save_path] array(3) => {
    [global_value] string(4) => "/tmp"
    [local_value] string(44) => "/var/www/DOMAINNAME/temp/sessions"
    [access] int(7) => 
  }
  [session.serialize_handler] array(3) => {
    [global_value] string(3) => "php"
    [local_value] string(3) => "php"
    [access] int(7) => 
  }
  [session.use_cookies] array(3) => {
    [global_value] string(1) => "1"
    [local_value] string(1) => "0"
    [access] int(7) => 
  }
  [session.use_only_cookies] array(3) => {
    [global_value] string(1) => "0"
    [local_value] string(1) => "0"
    [access] int(7) => 
  }
  [session.use_trans_sid] array(3) => {
    [global_value] string(1) => "0"
    [local_value] string(1) => "0"
    [access] int(6) => 
  }

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

[2003-10-29 19:58:00] [EMAIL PROTECTED]

Could you please show all your session related INI values after any
ini_set() or session_set_cookie_params() that your script normally
makes.

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

[2003-10-22 06:01:14] php at webfreezer dot com

Sorry, ini_set("session.name", "sessionID") is called before, NOT
ini_set("session-name"...

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

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/25934

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

Reply via email to