Re: Help with cookies
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]
Re: Help with cookies
On Wed, Aug 08, 2001 at 12:21:07PM -0700, Rasoul Hajikhani wrote: > But I never get to set the cookie... Can someone tell me what I am doing > wrong? As Perrin, said, is a cookie header being set and sent somewhere else in the code? In my experience, cookie programming can be extremely frustrating, given the different browsers in use for instance. Sometime's it's best to start very simple and work up from there. I've been using CGI::Cookie with some success recently but I'd expect Apache::Cookie to work in a similar way. Good luck! -- Alastair| [EMAIL PROTECTED] | http://www.calliope.demon.co.uk |PGP Key : A9DE69F8 ---
Re: Help with cookies
> Umm... Is > > > return OK; > > the correct thing to return when using multiple handlers? Yes, according the mod_perl docs. It only stops if you return something other than OK or DECLINED. - Perrin
Re: Help with cookies
> Long time no hear... I heard you moved to NY... This is true. I'm exploring new territory. > I think I do send a response back to Apache! I > mean I return OK status. Or do you mean something else? Like > $r->header_out(...)? You need to send the headers (with $r->send_http_header or something similar), and print something to the client. Otherwise, your Set-Cookie header will never get sent out. Glad to see you're still mod_perl-ing. - Perrin
Re: Help with cookies
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."
Re: Help with cookies
Perrin Harkins wrote: > > > Can some one tell me why I can not set a cookie... > > I have a module that is supposed to set a cookie called Cookie_Check: > > > > > And after my second handler should kick in and do some other magic. In > > my httpd.conf I have: > > > > > > SetHandler perl-script > > PerlHandler MIS_APPS::RHS::Control::Cookie_Check > > MIS_APPS::RHS::Control::Scan > > > > AuthName RHS > > AuthType Basic > > AuthUserFile /etc/passwd > > require valid-user > > > > > > But I never get to set the cookie... Can someone tell me what I am doing > > wrong? > > 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. > > - Perrin Hi Perrin, Long time no hear... I heard you moved to NY... How goes... Hey man thanks for responding. I think I do send a response back to Apache! I mean I return OK status. Or do you mean something else? Like $r->header_out(...)? -r
Re: Help with cookies
> Can some one tell me why I can not set a cookie... > I have a module that is supposed to set a cookie called Cookie_Check: > And after my second handler should kick in and do some other magic. In > my httpd.conf I have: > > > SetHandler perl-script > PerlHandler MIS_APPS::RHS::Control::Cookie_Check > MIS_APPS::RHS::Control::Scan > > AuthName RHS > AuthType Basic > AuthUserFile /etc/passwd > require valid-user > > > But I never get to set the cookie... Can someone tell me what I am doing > wrong? 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. - Perrin
Help with cookies
Can some one tell me why I can not set a cookie... I have a module that is supposed to set a cookie called Cookie_Check: package MIS_APPS::RHS::Control::Cookie_Check; use Apache::Constants qw(:common); use Apache::Request; use Apache::Cookie (); use strict; sub handler { my $r = shift; $res= Apache::Cookie->new( $r, -name =>'randh_webuname', -value => $webuname, -domain => '.rhythm.com', -expires=> '+24H', -path => '/' )->bake; return OK; } 1; And after my second handler should kick in and do some other magic. In my httpd.conf I have: SetHandler perl-script PerlHandler MIS_APPS::RHS::Control::Cookie_Check MIS_APPS::RHS::Control::Scan AuthName RHS AuthType Basic AuthUserFile /etc/passwd require valid-user But I never get to set the cookie... Can someone tell me what I am doing wrong? Thanks in advance -r
Help with cookies...
Can some one tell me why I can not set a cookie... I have a module that is supposed to set a cookie called Cookie_Check: package MIS_APPS::RHS::Control::Cookie_Check; use Apache::Constants qw(:common); use Apache::Request; use Apache::Cookie (); use strict; sub handler { my $r = shift; $res= Apache::Cookie->new( $r, -name =>'randh_webuname', -value => $webuname, -domain => '.rhythm.com', -expires=> '+24H', -path => '/' )->bake; return OK; } 1; And after my second handler should kick in and do some other magic. In my httpd.conf I have: SetHandler perl-script PerlHandler MIS_APPS::RHS::Control::Cookie_Check MIS_APPS::RHS::Control::Scan AuthName RHS AuthType Basic AuthUserFile /etc/passwd require valid-user But I never get to set the cookie... Can someone tell me what I am doing wrong? Thanks in advance -r