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]

Reply via email to