David Busby wrote:

> List,
>     I'm trying to set a cookie like this:
> <?php
> function redirect() {
>     if ($_SERVER['HTTP_HOST'] == $_SERVER['SERVER_NAME']) {
>         $to = func_get_arg(0);
>         header("HTTP/1.1 301\n");
>         header("Location:http://".$_SERVER['SERVER_NAME'].$to."\n");
>         header("Set-Cookie: sid=$sid;\n\n");
>         exit();
>     }
> }


You can't do this. Your "Set-Cookie" header is not going to be included 
in the HTTP response, so the browser never receives it. This is because 
you are using a "Location" header on the same page, which is going to 
take precedence. If you search the archives, you'll see more details 
about this behavior and some other peoples' opinions.

You have two ways around this:
1. Use a meta refresh instead of a protocol-level redirect.
2. Redesign the flow of your application to better handle this behavior.

Happy hacking.

Chris


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to