I can't send data from registration form to DB. I'm stuck on the same
page. I'm not redirected to post registration page. Only fields
password and verify password are being cleaned. Looks like
registration form is not working.

Is there a way you could look at my application so I would move on
with my coding?



On 14 Sie, 15:11, mdipierro <mdipie...@cs.depaul.edu> wrote:
> My mistake. It is
>
> {{=form.custom.submit}}
>
> not {{=form.custom.widget.submit}}
>
> On Aug 14, 8:02 am, elfuego1 <elfue...@gmail.com> wrote:
>
> > How do I fix that?
>
> > On 14 Sie, 15:01, elfuego1 <elfue...@gmail.com> wrote:
>
> > > In user.html I have now:
>
> > > {{if request.args(0)=='login':}}{{=auth.login()}}
>
> > > {{elif request.args(0)=='register':}}
> > > {{=form.custom.begin}}
> > > {{=form.custom.widget.first_name}}
> > > ...
> > > {{=form.custom.widget.submit}}
> > > {{=form.custom.end}}
>
> > > I have a submit button only on login page (which is generated
> > > automatically).
> > > But on registration page where I have custom form I have only "None"
> > > displayed instead of a button??
>
> > > On 14 Sie, 12:07, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > In the controller you should ONLY use
>
> > > > form=auth.register()
>
> > > > DO NOT make the registration form with FORM, SQLFORM, accepts, etc.
>
> > > > If you need to add fields, define your own db.auth_user table
>
> > > > If you need to customize presentation use
>
> > > > {{=form.custom.begin}}
> > > > {{=form.custom.widget.first_name}}
> > > > ....
> > > > {{=form.custom.widget.submit}}
> > > > {{=form.custom.end}}
>
> > > > insert any HTML you need. Use CSS and jQuery to style it.
>
> > > > On Aug 14, 5:03 am, elfuego1 <elfue...@gmail.com> wrote:
>
> > > > > OK. Then can you PLEASE tell me how should I write registration part
> > > > > to use full power of the framework?
>
> > > > > In controllers/default.py I have my custom form in def register().
> > > > > I invoke it in views/default/register.html with:
> > > > > {{=form}}
>
> > > > > HOW DO I  SAVE IT TO DATABASE???
> > > > > I just need this information and everything will work just fine.
>
> > > > > On 14 Sie, 11:48, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > You have two problems:
>
> > > > > > 1)
>
> > > > > > insert(....request.vars.password...)
> > > > > > should be
> > > > > > insert(...form.vars.password...)
>
> > > > > > request.vars contains the raw data sent from user, form.vars 
> > > > > > contains
> > > > > > the same data filtered by validators.
>
> > > > > > 2)
>
> > > > > > you are bypassing a lot of login that is normally performed by auth.
> > > > > > For example you do not get default groups for new users. Eventually
> > > > > > this will bite you.
>
> > > > > > Massimo
>
> > > > > > On Aug 14, 4:43 am, elfuego1 <elfue...@gmail.com> wrote:
>
> > > > > > > When I look into database I can see the password in a readable 
> > > > > > > form.
> > > > > > > No hash there.
> > > > > > > I tested registration on a standard cookbook application and the 
> > > > > > > hash
> > > > > > > there works for password field.
>
> > > > > > > So I started thinking what am I doing wrong. And then it stuck me 
> > > > > > > and
> > > > > > > I think I found the problem.
> > > > > > > When I was sending my form NOTHING was stored into database. I 
> > > > > > > only
> > > > > > > got a confirmation message: "Form accepted!".
> > > > > > > So I thought about a work around and put all my code responsible 
> > > > > > > for
> > > > > > > storing data into database just below this part of my form:
>
> > > > > > > if form.accepts(request.vars,session):
> > > > > > >         response.flash="Form accepted!"
> > > > > > >         db.auth_user.insert(username=request.vars.username,
>
> > > > > > > password=request.vars.password,
>
> > > > > > > first_name=request.vars.first_name,
>
> > > > > > > last_name=request.vars.last_name)
>
> > > > > > > So my question is where should I place this part of code to have 
> > > > > > > my
> > > > > > > data stored in DB and have CRYPT() method working?
> > > > > > > Or maybe there is some other method to save form data into 
> > > > > > > database?
> > > > > > > For now only this worked for me. But it looks like my way of 
> > > > > > > saving
> > > > > > > form data into database backfired on me.
>
> > > > > > > On 14 Sie, 10:15, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > > > this confirms that crypt is working. somehow it is not being 
> > > > > > > > called
> > > > > > > > for you. I am very puzzled by this.
> > > > > > > > How do you check the passwords are not hashed?
> > > > > > > > Can you make a minimalist app to reproduce the problem and and 
> > > > > > > > email
> > > > > > > > it to me?
>
> > > > > > > > On Aug 13, 6:39 pm, elfuego1 <elfue...@gmail.com> wrote:
>
> > > > > > > > > Requirements for password field in db.py file are as follows:
>
> > > > > > > > > db.auth_user.password.requires =
> > > > > > > > > [IS_STRONG(min=8,max=None,upper=None,lower=None,special=None,number=None,error_message='Too
> > > > > > > > > short'),
> > > > > > > > >  CRYPT(auth.settings.hmac_key)]
>
> > > > > > > > > there are aslo defined these parameters:
>
> > > > > > > > > auth.settings.controller = 'default'
> > > > > > > > > auth.settings.hmac_key='sha512:phraseforthepass'
>
> > > > > > > > > I was not sure if I import enough modules so beside the 
> > > > > > > > > obvious:
>
> > > > > > > > > from gluon.tools import *
>
> > > > > > > > > I aslo imported these two:
>
> > > > > > > > > from gluon.utils import *
> > > > > > > > > from gluon.validators import *
>
> > > > > > > > > Massimo, after I added the part of code you suggested in my
> > > > > > > > > registration page (register.html):
> > > > > > > > > {{=CRYPT(auth.settings.hmac_key)('hello world')}}
>
> > > > > > > > > I got this on the page in web browser:
>
> > > > > > > > > ('ae0bd13943b9f20d94ee01dd121d26bbee315f269d309de6aacbfeeeefe6e1c9d75c3d1549dbf9cf2db8c0ecf9094c72cca33baac3944256815e6969fbc97830',
> > > > > > > > > None)
>
> > > > > > > > > On 14 Sie, 00:16, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > > > > > can you try
>
> > > > > > > > > > print CRYPT(auth.settings.hmac_key)('hello world')
>
> > > > > > > > > > what do you get?  Did you set
>
> > > > > > > > > > auth.settings.hmac_key='sha512:somerandompasphrase'
>
> > > > > > > > > > On Aug 13, 12:39 pm, elfuego1 <elfue...@gmail.com> wrote:
>
> > > > > > > > > > > I did as mr.freeze suggested and I added values for all 
> > > > > > > > > > > parameters:
>
> > > > > > > > > > > db.auth_user.password.requires =
> > > > > > > > > > > [IS_STRONG(min=8,max=None,upper=None,lower=None,special=None,number=None,error_message='Too
> > > > > > > > > > > short'),
> > > > > > > > > > >  CRYPT(auth.settings.hmac_key)]
>
> > > > > > > > > > > It helped with my first problem. I don't get 
> > > > > > > > > > > error_message any more.
> > > > > > > > > > > Form is processed smoothly now.
>
> > > > > > > > > > > BUT the password still isn't hashed...
>
> > > > > > > > > > > I had found information about additonal parameter
> > > > > > > > > > > auth.settings.controller = 'default'
>
> > > > > > > > > > > and had added it in my db.py file. To no avail though  :-(
>
> > > > > > > > > > > On 13 Sie, 11:19, mdipierro <mdipie...@cs.depaul.edu> 
> > > > > > > > > > > wrote:
>
> > > > > > > > > > > > @elfuogo1, let us know if the problems are solved.
>
> > > > > > > > > > > > On Aug 12, 10:36 pm, "mr.freeze" <nat...@freezable.com> 
> > > > > > > > > > > > wrote:
>
> > > > > > > > > > > > > IS_STRONG is failing for a different reason but 
> > > > > > > > > > > > > displaying your error
> > > > > > > > > > > > > message.  The defaults are:
> > > > > > > > > > > > > min=8, max=20, upper=1, lower=1, number=1,  special=1
>
> > > > > > > > > > > > > If you remove your error message, you will get a 
> > > > > > > > > > > > > descriptive message
> > > > > > > > > > > > > for each failure. You can set each parameter to 0 to 
> > > > > > > > > > > > > disallow and to
> > > > > > > > > > > > > None to not check.
> > > > > > > > > > > > > db.auth_user.password.requires = 
> > > > > > > > > > > > > [IS_STRONG(min=8,max=None,upper=None,
>
> > > > > > > > > > > > > lower=None,special=None,number=None,error_message='Too
> > > > > > > > > > > > >  short'),
> > > > > > > > > > > > >                                   
> > > > > > > > > > > > > CRYPT(auth.settings.hmac_key)]
>
> > > > > > > > > > > > > Perhaps the defaults should be less aggressive.  Not 
> > > > > > > > > > > > > sure on the
> > > > > > > > > > > > > CRYPT, it hashes the password for me.
>
> > > > > > > > > > > > > On Aug 12, 9:53 pm, elfuego1 <elfue...@gmail.com> 
> > > > > > > > > > > > > wrote:
>
> > > > > > > > > > > > > > Hi,
>
> > > > > > > > > > > > > > I have a problem with two things in registration 
> > > > > > > > > > > > > > form.
>
> > > > > > > > > > > > > > 1. Definition for password field in database looks 
> > > > > > > > > > > > > > as follows:
>
> > > > > > > > > > > > > > db.auth_user.password.requires = [IS_STRONG(min=8 
> > > > > > > > > > > > > > ,error_message='Your
> > > > > > > > > > > > > > password is too short!'), 
> > > > > > > > > > > > > > CRYPT(auth.settings.hmac_key)]
>
> > > > > > > > > > > > > > But the form is not accepting passwords. Each time 
> > > > > > > > > > > > > > I want to send a
> > > > > > > > > > > > > > form it shows me error message: 'Your password is 
> > > > > > > > > > > > > > too short', even if
> > > > > > > > > > > > > > the password is much longer than required 8 signs.
> > > > > > > > > > > > > > After removing 'min=8' parameter I'm able to save 
> > > > > > > > > > > > > > my form in database.
>
> > > > > > > > > > > > > > 2. Although I have provided an encryption setting:
>
> > > > > > > > > > > > > > auth.settings.hmac_key='sha512:something
>
> > > > > > > > > > > > > > password is not encrypted in the database.
>
> > > > > > > > > > > > > > Can you help me and tell me what I'm doing wrong? 
> > > > > > > > > > > > > > Am I missing some
> > > > > > > > > > > > > > parameters?

Reply via email to