next-request's preloaded stash. That is, you can load up your flash with
whatever you need, and then do a full $c->res->redirect() somewhere -- which
fires off a browser redirect and a new request -- and your then-stash will
have all the goodies you plopped in there.
And, being the stash, it's all wiped out when the request is done. So a
follow-up request (or redirect) would either have an empty stash, or it'd
require the second request-handling routines to stuff things into flash
(again).
So it's not that "flash" is permanent, it's not. It's just a pre-load for
the next-request's short-lived stash.
On Sun, Jan 23, 2011 at 10:58 PM, Eric Berg wrote:
Thanks, Will. That I figured that would work, but I thought that the
flash was the right way to do it -- especially with the automatic cleanup,
so I was holding off on trying that.
Why doesn't flash work across these multiple requests? I thought that was
the whole idea of flash vs. stash.
Eric
On 1/23/11 11:52 PM, will trillich wrote:
The flash is moved to the stash after the redirect, and then it's gone
after that, right?
What we do is stuff the intended destination into the session and then
pull it from there:
sub login : Chained('/') PathPart('login') Args(0) {
my ( $self, $c ) = @_;
my $form = Spill::Form::Login->new( action => $c->uri_for('/login')
);
$c->stash(
template => 'login.tt2',
form => $form,
);
if ( $c->action ne 'login' ) {
# Stuff destination into session for later redirect if user
authenticates
* $c->session->{redirect} = $c->req->uri->as_string;*
}
...then, later, after authenticating...
my $go = *delete( $c->session->{redirect} )* ||
$c->req->headers->referer;
$go = '/' if $go =~ /\blog(in|out)\b/;
$c->res->redirect( $go );
$c->detach;
--
The first step towards getting somewhere is to decide that you are not
going to stay where you are. -- J.P.Morgan
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive:
http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/
Thanks, Will. That I figured that would work, but I thought that the
flash was the right way to do it -- especially with the automatic cleanup,
so I was holding off on trying that.
Why doesn't flash work across these multiple requests? I thought that was
the whole idea of flash vs. stash.
Eric
On 1/23/11 11:52 PM, will trillich wrote:
The flash is moved to the stash after the redirect, and then it's gone
after that, right?
What we do is stuff the intended destination into the session and then
pull it from there:
sub login : Chained('/') PathPart('login') Args(0) {
my ( $self, $c ) = @_;
my $form = Spill::Form::Login->new( action => $c->uri_for('/login')
);
$c->stash(
template => 'login.tt2',
form => $form,
);
if ( $c->action ne 'login' ) {
# Stuff destination into session for later redirect if user
authenticates
* $c->session->{redirect} = $c->req->uri->as_string;*
}
...then, later, after authenticating...
my $go = *delete( $c->session->{redirect} )* ||
$c->req->headers->referer;
$go = '/' if $go =~ /\blog(in|out)\b/;
$c->res->redirect( $go );
$c->detach;
On Sun, Jan 23, 2011 at 8:27 PM, Eric Berg wrote:
If a user submits a certain form without being logged in, I flash the
current URL, save the params in the session, and redirect them to the login.
In my Login controller, I look for $c->flash->{redirect_url} and redirect
them back to that URL.
The problem is that that flash entry is gone after the user submits the
login form. I logged out the redirect URL at the beginning of my login
routine and it comes through the first time, but even if I don't access it
via the log statement, that redirect_url key is not there in the flash when
the user submits the login form with their credentials.
I've tried resetting $c->flash->{redirect_url} in the login routine and
also tried $c->keep_flash( qw( redirect_url )) in the login routine, but no
go.
Any thoughts on what I might be doing wrong?
Eric
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive:
http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/
If a user submits a certain form without being logged in, I flash the
current URL, save the params in the session, and redirect them to the login.
In my Login controller, I look for $c->flash->{redirect_url} and redirect
them back to that URL.
The problem is that that flash entry is gone after the user submits the
login form. I logged out the redirect URL at the beginning of my login
routine and it comes through the first time, but even if I don't access it
via the log statement, that redirect_url key is not there in the flash when
the user submits the login form with their credentials.
I've tried resetting $c->flash->{redirect_url} in the login routine and
also tried $c->keep_flash( qw( redirect_url )) in the login routine, but no
go.
Any thoughts on what I might be doing wrong?
Eric
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive:
http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/
--
The first step towards getting somewhere is to decide that you are not
going to stay where you are. -- J.P.Morgan
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive:
http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/
--
The first step towards getting somewhere is to decide that you are not going
to stay where you are. -- J.P.Morgan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20110123/9c4af42c/attachment.htm