[Catalyst] The old double-post issue

Wade.Stuart at fallon.com Wade.Stuart at fallon.com
Fri Sep 22 00:04:38 CEST 2006






catalyst-bounces at lists.rawmode.org wrote on 09/21/2006 04:33:07 PM:

> On Thu, Sep 21, 2006 at 05:09:07PM -0400, Perrin Harkins wrote:
> > Sure, but something strange happened, so a different message is a
> > reasonable response.  We just provide a message for this about how the
> > transaction wasn't processed because another identical one just came
> > through in the last minute and it looks like a duplicate.  That seems
> > pretty easy to understand.
>
> The problem, which I can reproduce in FF by hitting escape between
> submits, is that the first request completes as normal (and would
> return a "Transaction Completed!" response page) but, then the
> second request (which is what the browser is now following) sees that
> the transaction is no longer valid and returns and error page.  But
> that doesn't tell the end-user that the transaction really happened.
>

But why are you returning an error page,  doesn't the fact that the token
no longer is valid mean that the form has already been submitted (return a
oops this form has already been submitted page)?  If it was submitted with
a validation err wouldn't t you have generated a new token along with the
form tagged with error codes to submit yet again?  I guess I don't see how
you would get into a state where a user submits a form and the token is
invalid unless the form had already been submitted.  I am looking at the
C::P::RT source to see if  there is some sort of race I am not thinking of.

> My code now detects that something doesn't quite make sense and gives
> a slightly smarter message.  But, it's not always easy to see a
> request and know that it's already happened vs. just is not in a
> state where that kind of request is allowed.

Does the plugin actually lose its state without a submission? (even if you
go to another section of website on the same session...)
>
> Mostly, I now say "Did you submit the form twice?" kind of thing.  It
> would help if I moved to a more atomic test/update on my form's unique
> token than C::P::RequestToken provides.
>




More information about the Catalyst mailing list