ID:               27688
 Updated by:       [EMAIL PROTECTED]
 Reported By:      ryan at daelibs dot com dot au
-Status:           Open
+Status:           Closed
 Bug Type:         Documentation problem
 Operating System: *
 PHP Version:      5CVS, 4CVS (2005-01-10)
 New Comment:

This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation
better.

"Session name can't consist only from digits, at least one letter must
be present. Otherwise new session id is generated every time."


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

[2005-07-29 18:30:20] [EMAIL PROTECTED]

There should be a big fat warning about this in the manual.


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

[2005-07-29 18:29:48] [EMAIL PROTECTED]

Session name can NOT be a plain number. 
No checks will be added since that'd make the code slower for no real
gain.


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

[2004-03-29 09:39:15] [EMAIL PROTECTED]

This happens because PHP turns a numeric session name 
into an array index inside $_COOKIE and we're doing an 
zend_hash_find() instead of a zend_hash_index_find(). 
(ext/session/session.c, line 1098).

We can probably fix the bug by doing a 
zend_hash_index_find() instead if the session name 
successfully converts to a integer.


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

[2004-03-29 04:53:03] unknown at simplemachines dot org

Here's a simple workaround:

<?php

// This name works.
//session_name('A9');

// This name doesn't...
session_name('99');

// Force the last session id, not the detected one.
session_id($_COOKIE[session_name()]);

session_start();

echo '
        Session Name: ', session_name(), '<br />
        Session ID: ', session_id(), '<br />
        Cookie: ', $_COOKIE[session_name()];

?>

Removing the session_id() line though, shows that the cookie is still
being properly set.

-[Unknown]

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

[2004-03-25 00:00:26] ryan at daelibs dot com dot au

Description:
------------
When you use a session name that has only numbers, each call to
session_start seems to regenerate a new session id, so the session does
not persist.

The code below can be loaded and refreshed to reproduce the behaviour


Reproduce code:
---------------
<?php

//This name works
//session_name('A9');

//This name doesn't
session_name('99');

session_start();

echo 'Session Name: '.session_name().'<br />';
echo 'Session Id: '.session_id().'<br />';
?>

Expected result:
----------------
Session Name: 99
Session Id: {{a sid that remains the same between each refresh }} 

Actual result:
--------------
Session Name: 99
Session Id: {{a different sid each refresh}} 


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


-- 
Edit this bug report at http://bugs.php.net/?id=27688&edit=1

Reply via email to