From:             mag at alcormizar dot com
Operating system: windows xp - 2000
PHP version:      5.0.4
PHP Bug Type:     Session related
Bug description:  Session ID change when multiple javascript call occurs 
simultaneously

Description:
------------
We have a web page that refresh 3 images every seconds, we use javascript
+ dhtml to accomplish this. 

We use a timeout to call the UpdateImage function every second for each of
the three images. Since there was a security risk in enabling sending
cookies when changing the src attribute of an image, we need to send the
Session ID as a GET request because we need our Session variables in
test.php to select the right image to send back to the browser.

The calls to change the 3 images are made very close to one another, maybe
even at the same time (but it sure is within a few milliseconds). Here's
what happen :

1. Call to change the first image - Ok
2. Call to change the second image - Ok, but php change the Session ID
after session_start() (why ???).
3. Call to change the third image - Fail, because the Session ID is not
good anymore.

What happen is that the third call to the function is made <-before-> the
Session ID is changed in the browser cookie, kind of a race condition.


Reproduce code:
---------------
function UpdateImage(IdImage)
{
    var phpsessionid = GetSessionID(); //Get the PHPSESSID value from the
cookie.

    document.getElementById(IdImage).src =
"http://example.com/test.php?PHPSESSID="; + phpsessionid +
"xxxxxxxxx&idimage=id";
}

Expected result:
----------------
We would expect the Session ID not to change between those calls, unless
someone can explain why it is changed like that.


-- 
Edit bug report at http://bugs.php.net/?id=34275&edit=1
-- 
Try a CVS snapshot (php4):   http://bugs.php.net/fix.php?id=34275&r=trysnapshot4
Try a CVS snapshot (php5.0): 
http://bugs.php.net/fix.php?id=34275&r=trysnapshot50
Try a CVS snapshot (php5.1): 
http://bugs.php.net/fix.php?id=34275&r=trysnapshot51
Fixed in CVS:                http://bugs.php.net/fix.php?id=34275&r=fixedcvs
Fixed in release:            http://bugs.php.net/fix.php?id=34275&r=alreadyfixed
Need backtrace:              http://bugs.php.net/fix.php?id=34275&r=needtrace
Need Reproduce Script:       http://bugs.php.net/fix.php?id=34275&r=needscript
Try newer version:           http://bugs.php.net/fix.php?id=34275&r=oldversion
Not developer issue:         http://bugs.php.net/fix.php?id=34275&r=support
Expected behavior:           http://bugs.php.net/fix.php?id=34275&r=notwrong
Not enough info:             
http://bugs.php.net/fix.php?id=34275&r=notenoughinfo
Submitted twice:             
http://bugs.php.net/fix.php?id=34275&r=submittedtwice
register_globals:            http://bugs.php.net/fix.php?id=34275&r=globals
PHP 3 support discontinued:  http://bugs.php.net/fix.php?id=34275&r=php3
Daylight Savings:            http://bugs.php.net/fix.php?id=34275&r=dst
IIS Stability:               http://bugs.php.net/fix.php?id=34275&r=isapi
Install GNU Sed:             http://bugs.php.net/fix.php?id=34275&r=gnused
Floating point limitations:  http://bugs.php.net/fix.php?id=34275&r=float
No Zend Extensions:          http://bugs.php.net/fix.php?id=34275&r=nozend
MySQL Configuration Error:   http://bugs.php.net/fix.php?id=34275&r=mysqlcfg

Reply via email to