here's the code I used.
http://pastie.org/1891534

what's weird is that I know that CRYPT works in my other apps, it's
just in this particular controller that it isn't working right.

And in my case, my logical test is "==" and not "!=". My problem is
the unecrypted
 variable...


On May 10, 10:54 pm, Anthony <abasta...@gmail.com> wrote:
> On Tuesday, May 10, 2011 2:10:07 AM UTC-4, niknok wrote:
>
> > Anthony, sorry for the typo. I meant calling onvalidation=, and not
> > onaccept
>
> > That is the behavior I'm expecting, since I've seen that work like so
> > before. Here's a stripped-down version of the function:
>
> > def cnv():
> >     c_hash=request.args(0)
> >     form=SQLFORM.factory(
> >         Field('card_number','string'
> >                 ,label='Card number',comment='with dashes')
> >                 ,requires=CRYPT(auth.settings.hmac_key))
> >     if form.accepts(request.vars,session):
> >         #import ipdb;ipdb.set_trace()
> >         #if c_hash!= form.vars.card_number:     #<------ does not work
>
> What do you mean the above does not work? Are you expecting
> form.vars.card_number to equal c_hash (if so, shouldn't '!=' be '==')? Where
> does c_hash come from (i.e., how does it get in request.args)?
>
> >         if CRYPT(auth.settings.hmac_key)(form.vars.card_number)
> > [0]==c_hash:
>
> What is the purpose of the above line? form.vars.card_number should already
> be hashed (form.accepts should result in it being hashed), so this line
> appears to be double hashing the card number, which I assume wouldn't match
> c_hash (assuming c_hash is supposed to be the hashed card number).
>
> Anthony

Reply via email to