|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-01-19 14:44 UTC] bf at ez dot no
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.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 16:00:01 2025 UTC |
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.