ID: 8809
User Update by: [EMAIL PROTECTED]
Status: Open
Old-Bug Type: Feature/Change Request
Bug Type: Scripting Engine problem
Description: Cookieless session with Header redirects
When PHP is compiled with --enable-trans-sid http redirects with header() does not
work with cookieless sessions.
This must be a bug.
Here is how I fixed it with php code. The header() function should handle this if
--enable-trans-sid is compiled in:
function ezheader( $string )
{
$sid =& $GLOBALS["PHPSESSID"];
if ( isset( $sid ) )
{
$pos = strpos( $string, "?" );
if ( $pos )
{
$string = $string . "&PHPSESSID=$sid";
}
else
{
$string = $string . "?PHPSESSID=$sid";
}
}
header( $string );
}
This code will automatically append the session id if it exists and that enables
cookieless sessions with header( "Location: " ) redirects.
Previous Comments:
---------------------------------------------------------------------------
[2001-01-19 14:44:53] [EMAIL PROTECTED]
I have code like:
session_start();
if ( !isset( $Foo ) )
{
session_register( "Foo" );
}
else
{
print( $Foo );
}
Header( "Location: /index.php" );
This does not work with cookieless sessions because the session information is not
added to the header() if it's a redirect.
The header() should add the PHPSESSIONID variable to the redirection path if it
contains "Location: " like it does with other URLS and forms.
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=8809
--
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]