Bug #12968 Updated: Session don't store after header("Location: ...")
| From: | lobbin@php.net | Date: | Wed, 09 Jan 2002 07:06:16 +0000 |
| Subject: | Bug #12968 Updated: Session don't store after header("Location: ...") | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-76313@lists.php.net to get a copy of this message | ||
ID: 12968
Updated by: lobbin
Old Summary: Session don't store after header("Location: ...")
Reported By: tthiery@yahoo.de
Old Status: Feedback
Status: Closed
Bug Type: Session related
Operating System: Linux
PHP Version: 4.0.6
New Comment:
No feedback. Closing.
Previous Comments:
------------------------------------------------------------------------
[2001-12-19 22:22:09] yohgaki@php.net
Please test with 4.1.0 and latest CVS snapshot.
CVS snapshot source can be found
http://snaps.php.net/
(No windows binary)
If you don't have problem with latest CVS snapshot,
you can close your bug report by yourself.
Please report the result. When you update your bug
report, do not forget updating PHP version also.
Thank you
--
Yasuo
------------------------------------------------------------------------
[2001-08-27 18:37:36] tthiery@yahoo.de
Sorry, but no it doesn't help. The UPDATE Session query from site1 still
run after the SELECT Session query from site2.
------------------------------------------------------------------------
[2001-08-27 14:44:02] hholzgra@php.net
does ingnore_user_abort(true) help ?
------------------------------------------------------------------------
[2001-08-27 05:30:06] tthiery@yahoo.de
System:
Linux
PHP 4.06
Apache 1.3.19
mySQL 3.23.38
side1.php
session_start();
session_register("var1");
Header("location:page2.php);
side2.php
session_start();
session_is_register("logon") returns false;
I check the mySQL logs (i have a personal written session_handler, which
works fine under a lot of different systems with mySQL) and see
following problem
side1.php: SELECT * FROM Session WHERE SessionID ...
.... script queries from side1.php
side2.php: SELECT * FROM Session WHERE SessionID ...
side1.php: UPDATE Session SET ... WHERE SessionID ...
.... script queries from side2.php
side2.php: UPDATE Session Set ... WHERE SessionID ....
instead of the normal:
side1.php: SELECT * FROM Session WHERE SessionID ...
.... script queries from side1.php
side1.php: UPDATE Session SET ... WHERE SessionID ...
side2.php: SELECT * FROM Session WHERE SessionID ...
.... script queries from side2.php
side2.php: UPDATE Session Set ... WHERE SessionID ....
i think the problem is that the header("Location: ...") works so fast
over the intranet network, that my old developer machine isn't fast
enaugh to handle the script SQL statement, before the new site request
reach another process of the apache and query the session table.
the problem is that the buffer is flushed before the session related
operations are done
What can i do against this behavior?
thanx
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=12968&edit=1