If you're chaining handlers, they should all return OK. They will all get
called, so long as they either appear in the config file on the same line, or
have been registered using $r->push_handlers().

One of them must send the header though, or return REDIRECT (for example) to
perform a redirect. Does Apache::Cookie->bake() set both the regular headers and
the error headers?

I usually call the header setting routines manually like so:
$r->header_out("Set-Cookie" => $cookie->as_string()); #and also call
$r->err_header_out("Set-Cookie" => $cookie->as_string());

If you're returning OK, the server assumes you handled the request. So you
should have sent a response page and would probably have used
$r->send_http_header to generate the header for that page.
If you return REDIRECT, the header is sent for you based on what you set with
$r->err_header_out(). So if you want to be sure that the cookie will be set, you
should set it in both the error headers and the regular headers.

Then depending on whether you're redirecting or just generating a page call:
return REDIRECT;
 Or call
$r->send_http_header('text/html'); #If you're about to send some HTML.

Either way the cookie gets sent. (The err_header_out is for the REDIRECT and the
header_out is for the regular send_http_header). Also remember to set the
Location header if you're doing a redirect. I also use both err_header_out AND
header_out to set this. (I should probably just be using err_header_out for
that).

~mark.




Robert Landrum wrote:

> At 3:50 PM -0400 8/8/01, Perrin Harkins wrote:
> >
> >It depends on what's happening in that second module.  If you don't send an
> >actual response to the client, headers (including cookies) will not be sent
> >out.
>
> Umm... Is
>
> >       return OK;
>
> the correct thing to return when using multiple handlers?  I thought
> DECLINED was the correct status code.  Then the last module (in this
> case MIS_APPS::RHS::Control::Scan) would return OK.
>
> Robert Landrum
>
> --
> "A good magician never reveals his secret; the unbelievable trick
> becomes simple and obvious once it is explained. So too with UNIX."

--
Mark Maunder
Senior Architect
SwiftCamel Software
http://www.swiftcamel.com
mailto:[EMAIL PROTECTED]


Reply via email to