Hey Massimo,

The

{{form=auth()}}
{{form['_acton'] = "/user/login"}}
{{=form.custom.begin}}


spat out the html without the updated action

<html action="" method="post" enctype="multipart/form-data">


Cheers,

Rhys


On Monday, May 7, 2012 12:52:20 AM UTC+10, Massimo Di Pierro wrote:
>
> Interesting. When you say it did not work. What html did it generate?
>
> On Sunday, 6 May 2012 03:25:41 UTC-5, Rhys wrote:
>>
>> Hey Massimo,
>>
>> You've steered me in the right direction.
>>
>> Basically I've had to put in a pure opening html form element in, and 
>> then use the custom form widgets afterwards. Works now. Resulting in:
>>
>> <form action="user/login" method="post">
>>     {{=form.custom.widget.email}}
>>     {{=form.custom.widget.password}}
>> {{=form.custom.end}}
>>
>> The
>>
>> form['_action'] = URL('user/login')
>>
>> or
>>
>> form.attributes['_action'] = URL('user/login')
>>
>>
>> for some reason didn't want to work. 
>>
>> Cheers,
>>
>> Rhys
>>
>> On Sunday, May 6, 2012 3:50:52 PM UTC+10, Massimo Di Pierro wrote:
>>>
>>> This is because of the mechanism to prevent CSRF attacks.
>>> There are supposed to be two hidden fields, one is the formname. The 
>>> other is the formkey (a unique onetime token).
>>>
>>> Try:
>>>
>>> {{
>>> form=auth.login()
>>> form['_action']=URL('user/login')
>>> }}
>>> {{=form.custom.begin}}
>>> {{=form.custom.widget.email}}
>>> {{=form.custom.widget.password}}
>>> <input type="submit" value="login">
>>> <input type="hidden" name="_next" value="/feed">
>>> {{=form.custom.end}}
>>>
>>>
>>> On Saturday, 5 May 2012 23:37:57 UTC-5, Rhys wrote:
>>>>
>>>> Hey Alan,
>>>>
>>>> I don't want to redirect. I'll try and to explain it a bit more.
>>>>
>>>> Basically I have two forms. One which is a drop down, in pure html
>>>>
>>>> <form action="/user/login" method="post">
>>>>     <input type="hidden" name="_formname" value="login">
>>>>     <input type="hidden" name="_next" value="/feed">
>>>>    <input type="text" name="email" id="auth_user_email">
>>>>     <input type="password" name="password" id="aut_user_password">
>>>>     <input type="submit" value="login">
>>>> </form>
>>>>
>>>>
>>>>
>>>> ^ this Form is on every page which the user is not logged into. When 
>>>> they fill out this form and click submit I want the /user/login page to 
>>>> process it, but it is not doing so. When the page finds there is an error 
>>>> with the login or the user is not authorised, I would like the /user/login 
>>>> form which is exactly the same form as above but on another page with the 
>>>> drop down one removed, to present there was an error with the login.
>>>>
>>>> Both forms I've done in html so there is no form key to process. I'm 
>>>> trying to figure out why auth.login() doesn't process it as the 
>>>> form.accepts() method in auth.login() has the same formname. What is 
>>>> preventing it from being processed. It's driving me in sane. I'm stepping 
>>>> through the code in debug mode and can't find why it would not process it. 
>>>> It is basically a SQL form in html like described in the web2py book.
>>>>
>>>> Any insight would be great by any!
>>>>
>>>> On Sunday, May 6, 2012 12:19:49 AM UTC+10, Alan Etkin wrote:
>>>>>
>>>>> *auth.is_logged_in()* will return a bool object. True for 
>>>>> authenticated user and I belive *auth.user_id* attribute is None for 
>>>>> the non authenticated user. *auth *being the Auth class instance 
>>>>> created by the welcome scaffolding application.
>>>>>
>>>>> You could use the returned values to catch unsuccessful authentication 
>>>>> and redirect to the correct action
>>>>>
>>>>> There is an Auth setting for failed authentication (for example, it's 
>>>>> possible to call a function on failed login)
>>>>> ("Settings and Messages", web2py book 4th edition, 9.3.7)
>>>>>
>>>>> auth.settings.on_failed_authentication = lambda url: redirect(url)
>>>>>
>>>>> On Saturday, May 5, 2012 9:51:23 AM UTC-3, Rhys wrote:
>>>>>>
>>>>>> I'm creating a custom drop down login form for all pages where the 
>>>>>> user isn't logged in. Once they try and login through this form if it 
>>>>>> is unsuccessful it redirects to the /user/login page with the auth.login 
>>>>>> form. How do I get a error if the login has resulted in an invalid 
>>>>>> login. 
>>>>>> As there are two forms I've tried also tried to do a form out of html so 
>>>>>> there is no form key. Still no luck. Is it s simple variable I can use 
>>>>>> to 
>>>>>> determine if it is successful? 
>>>>>
>>>>>

Reply via email to