ID: 25934
User updated by: php at webfreezer dot com
Reported By: php at webfreezer dot com
-Status: Feedback
+Status: Open
Bug Type: Session related
Operating System: SuSe Linux 8.1
PHP Version: 4.3.3
New Comment:
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) =>
}
Previous Comments:
------------------------------------------------------------------------
[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"...
------------------------------------------------------------------------
[2003-10-22 05:59:38] php at webfreezer dot com
I don�t access the sessionID in the scripts directly via any $_GET or
$_POST. I only use PHP�s session_id() and session_name() functions
throughout the scripts.
After testing the current PHP snap there has been no change in the
behavior so I changed the version back to 4.3.3.
However I tried something different.
I appended &PHPSESSID={SESSIONID} to the URL so that it now looks like
"file.php?sessionID={SESSIONID}&PHPSESSID={SESSIONID}" when such a
session "loss" occured and it works!
As I stated before the session file exists and contains the correct
data so the session is kind of restored that way.
ini_get("session.name") however correctly returns "sessionID" on the
same page and ini_set("session-name", "sessionID") is of course called
prior to session_start().
So it seems as if PHP does not always correctly use the settings and
falls back to standard values.
Might ini_set values also be "remembered" by Apache processes as stated
in bug bug #25753?
I don�t know why it didn�t work some time ago when changing the session
name to PHPSESSID did not work, but since then the code has been
changed since then that might have been another problem.
------------------------------------------------------------------------
[2003-10-22 04:49:53] [EMAIL PROTECTED]
Are you accessing the session ID via globals or do you use $_GET, etc.?
This might be same issue as bug #25753 is about.
------------------------------------------------------------------------
[2003-10-21 08:37:47] php at webfreezer dot com
Description:
------------
PHP sometimes does not want to use the sessionID given via GET! This
happens only on some occasions however it is reproducible on such a
certain page. I regret that I cannot post a short code snippet because
it simply does not happen when testing with a short code snippet.
What happens is the following:
- the SID is used as a GET parameter (this works on every other page!)
- $sidname=session_name(); echo $_GET[$sidname] outputs the correct SID
visible in the URL (e.g.
"/search.php?page=2&qid=1&sessionID=1291bfd78301f151803ca632cd41f626")
- however echo session_id() outputs a totally different SID!
- both (old and new) SID files exist and are readable
session.auto_start=0
session.use_cookies=0
session.use_only_cookies=0
session.referer_check=0
I even implemented my own session handler and it appears that PHP does
not even call the OPEN function for the "old" SID that it no longer
wants to use.
I also tried to use the generic PHPSESSID name instead of the custom
"sessionID" by not setting the custom name, but the problem still
exists.
This is my configure line:
'./configure' '--with-apache=../apache_1.3.28'
'--with-mhash=/usr/local/lib' '--with-zlib-dir=/usr/local/lib'
'--with-zip=/usr/local/lib' '--enable-memory-limit'
'--enable-versioning' '--with-gd' '--enable-exif'
'--with-config-file-path=/etc' '--enable-magic-quotes'
'--enable-thread-safety' '--with-gettext' '--with-xml' '--with-mcrypt'
'--enable-calendar' '--enable-bcmath' '--with-curl'
'--with-curlwrappers' '--enable-ftp' '--enable-wddx'
'--with-jpeg-dir=/usr/lib'
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=25934&edit=1