ID: 15086
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Feedback
Bug Type: Session related
Operating System: Debian
PHP Version: 4.1.1
Assigned To: yohgaki
New Comment:
I've tried a number of different combinations of both php.ini settings
(zlib.output_compression and session.auto_start) as well as in-line
function calls (session_start, ob_start("ob_gzhandler")), and in every
situation I've found, the transient SID is lost when compression is
turned on.
Note that I'm using PHP 4.1.1 (4.1.2 is compiling as I type this) on
RedHat Linux 7.2, and did compile it with --enable-trans-sid.
Here's a summary of the 5 different tests I tried:
[Test 1]
php.ini:
zlib.output_compression = Off
session.auto_start = 0
--snip--
<?
session_start();
session_register("testvar");
$testvar = "test value";
?>
<a href="/test.php">Testing</a>
--snip--
Result: PHPSESSID gets appended correctly.
[Test 2]
php.ini:
zlib.output_compression = Off
session.auto_start = 1
--snip--
<?
session_register("testvar");
$testvar = "test value";
?>
<a href="/test.php">Testing</a>
--snip--
Result: PHPSESSID gets appended correctly.
[Test 3]
php.ini:
zlib.output_compression = Off
session.auto_start = 0
--snip--
<?
ob_start("ob_gzhandler");
session_start();
session_register("testvar");
$testvar = "test value";
?>
<a href="/test.php">Testing</a>
--snip--
Result: PHPSESSID is lost and not appended.
[Test 4]
php.ini:
zlib.output_compression = On
session.auto_start = 0
--snip--
<?
session_start();
session_register("testvar");
$testvar = "test value";
?>
<a href="/test.php">Testing</a>
--snip--
Result: PHPSESSID is lost and not appended.
[Test 5]
php.ini:
zlib.output_compression = On
session.auto_start = 1
--snip--
<?
session_register("testvar");
$testvar = "test value";
?>
<a href="/test.php">Testing</a>
--snip--
Result: PHPSESSID is lost and not appended.
Previous Comments:
------------------------------------------------------------------------
[2002-03-06 02:56:45] [EMAIL PROTECTED]
Could you try to start session manually in script and report the
result?
Does it work now? I think it should.
------------------------------------------------------------------------
[2002-02-06 22:22:03] [EMAIL PROTECTED]
> User should make sure *not* to use session auto start to make trans
sid
> when zlib.ouput compression is enabled.
should be
User should make sure *not* to use session auto start to make trans sid
work when zlib.ouput compression is enabled.
------------------------------------------------------------------------
[2002-02-06 22:20:52] [EMAIL PROTECTED]
Note to this report.
The reason trans sid does not work is related to output handler
registration order. This is not a simple fix at all. (I might set
status to Suspended)
User should make sure *not* to use session auto start to make trans sid
when zlib.ouput compression is enabled.
The reason SID is not defined is not related to output control.
I also made a patch to define SID constant always, but it's not applied
to CVS. (yet)
If you have problem with SID not defined *even if* you have used
--enable-trans-sid when you configure PHP and session.trans_sid = 1 in
your php.ini, please submit a new bug report as session problem.
------------------------------------------------------------------------
[2002-01-17 11:03:34] [EMAIL PROTECTED]
When I compress my output with ob_gzhandler or with
zlib.output_compression trans sid doesn't work.
Without output compression trans sid works fine.
I use PHP 4.1.1 (Debian Package)
In following code php doesn't add the sid to the testlink
(sessioncookies are off)
<?php
session_start();
session_register("dummy");
$dummy=1;
if (!$sid) {
header("Location: $PHP_SELF?".SID);
exit();
}
?>
<a href="test.php">Testlink</a>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=15086&edit=1