ID: 9264
User Update by: [EMAIL PROTECTED]
Old-Status: Feedback
Status: Open
Bug Type: *Session related
Operating system: win98 SE
PHP Version: 4.0 Latest CVS (14/02/2001)
Description: Using session_encode with user-level session storage functions causes a 
crash

Hi sniper and all!

Well, it's not easy to send you an accurate reply because zend snapshots for win32 
does not contain the Apache module.

BTW, Ive done some testings:
- with php4.07-dev from php4win.de the script still crashes Apache with php loaded as 
a gci or as an Apache module;
- with the latest snapshot from zend.com (cgi only), it runs :)

If someone can build the Apache module (I can't do it, sorry :() I may do some more 
tests.

Thanks for your attention,
Loïc

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

[2001-06-14 23:21:56] [EMAIL PROTECTED]
Does this happen with latest CVS snapshot build from
http://www.zend.com/snapshots/ ??



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

[2001-03-17 12:08:15] [EMAIL PROTECTED]
Hi!

I've done a test with the new php4.0.5-RC1 from php4win.de and the crash still occurs.

Regards,
Loïc

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

[2001-02-15 11:05:27] [EMAIL PROTECTED]
Oups, in the code before I omited to put the 'open session' function. Here it is:

function dbSessionOpen($savePath, $sessionName)
{
    return true;
}


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

[2001-02-14 12:39:47] [EMAIL PROTECTED]
Hi!

Be indulgent for my poorly english level please...

To force session data to be saved when using a database based session storage system 
and 'register_globals' is set to off I've build this (very) simplified structure of 
script:

function dbSessionClose()
{
    return true;
}

function dbSessionRead($id)
{
    return true;
}

function dbSessionWrite($id, $data)
{
    return true;
}

function dbSessionDestroy($id)
{
    return true;
}

function dbSessionGarbageCollector($sessionLifeTime)
{
    return true;
}

function dbSessionSave()
{
    return dbSessionWrite(session_id(), session_encode());  // The note below is about 
this line
}

session_set_save_handler('dbSessionOpen', 'dbSessionClose', 'dbSessionRead', 
'dbSessionWrite', 'dbSessionDestroy', 'dbSessionGarbageCollector');


/**
 * Uses session
 */
session_start();
session_register('myVar');

$myVar = 'crash';

dbSessionSave();


Then each time I run it with the latest PHP 4.0.5dev loaded as an apache module, PHP 
crash and produces this error:

APACHE a causé une défaillance de page dans
 le module PHP4TS.DLL à 016f:008a533e.
Registres :
EAX=00000000 CS=016f EIP=008a533e EFLGS=00010246
EBX=00000000 SS=0177 ESP=01e2f274 EBP=007f7df0
ECX=007ee7a0 DS=0177 ESI=007ee164 FS=2217
EDX=007ee130 ES=0177 EDI=007f7c46 GS=0000
Octets à CS : EIP :
8b 00 8b 4c 24 0c 8b 54 24 08 51 8b 4c 24 08 42 
État de la pile :
008a57b4 007f7c40 00000005 01e2f2a4 007ee7a0 007ee130 007dd720 00000001 00000000 
007dd720 007f7b10 007f7c40 00000000 00000000 007ee7a0 007dd720


An amazing note: if...
- ... at the first run I replace the call to the session_encode() function by the 
string 'crash', fire the script...
- ... then resume to the original 'dbSessionSave()' function and run the script 
again...
... everything go right!

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


Full Bug description available at: http://bugs.php.net/?id=9264


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to