I think you should'nt call Recaptcha with 'PUBLIC_KEY' and 'PRIVATE_KEY'
as strings
PUBLIC_KEY and PRIVATE_KEY should be variables that contain the keys you
have created on recaptcha website (
https://www.google.com/recaptcha/admin/create)
On* models\db.py* I would remove the line
db.contact_us.captcha = Recaptcha(request,
'PUBLIC_KEY', 'PRIVATE_KEY')
And on *views/default/contact_us.html *I would replace
<td colspan=2>{{=DIV(Recaptcha(error_message='invalid', label='Verify:',
options='theme:"white", lang:"fr"'))}}
</td>
*with*
*
*
<td colspan=2>{{=Recaptcha(request, PUBLIC_KEY, PRIVATE_KEY,
error_message='invalid', label='Verify:', options='theme:"white",
lang:"fr"')}}</td>
Or you could also add in your controller something lilke :
form.element('table').insert(-1,(T('Please confirm that you are not a
machine :'),Recaptcha(request, PUBLIC_KEY, PRIVATE_KEY),''))
Le vendredi 26 avril 2013 05:54:24 UTC+2, 黄祥 a écrit :
>
> hi
>
> is it possible to use recaptcha in custom forms?
> i've already tested it but it return an error :
> Traceback
>
> 1.
> 2.
> 3.
> 4.
> 5.
> 6.
> 7.
> 8.
>
> Traceback (most recent call last):
> File "/home/stifank/Desktop/web2py/gluon/restricted.py", line 212, in
> restricted
> exec ccode in environment
> File
> "/home/stifank/Desktop/web2py/applications/stifix/views/default/contact_us.html",
> line 164, in <module>
> File "/home/stifank/Desktop/web2py/gluon/tools.py", line 732, in __init__
> self.remote_addr = request.env.remote_addr
> AttributeError: 'NoneType' object has no attribute 'env'
>
>
> the things that i've done :
> *models/db.py*
> db.define_table('contact_us',
> Field('name', notnull=True),
> Field('email', notnull=True),
> Field('phone', notnull=True),
> Field('address', 'text', notnull=True),
> Field('city', notnull=True),
> Field('messages', 'text', notnull=True),
> format='%(email)s %(name)s')
>
> from gluon.tools import Recaptcha
> db.contact_us.captcha = Recaptcha(request,
> 'PUBLIC_KEY', 'PRIVATE_KEY')
>
> *controllers/default.py*
> def contact_us():
> form=SQLFORM(db.contact_us)
> if form.process().accepted:
> response.flash = T('messages sent')
> elif form.errors:
> response.flash = T('there is an error in the form')
> else:
> response.flash = T('please fill out the form')
> return dict(form=form)
>
> *views/default/contact_us.html*
> {{=form.custom.begin}}
> <table>
> <tbody>
> <tr>
> <td>{{=DIV(B(T(form.custom.label.name), SPAN(' *',
> _style='color:red')))}}
> {{=DIV(form.custom.widget.name)}}
> </td>
> <td>{{=DIV(B(T(form.custom.label.email), SPAN(' *',
> _style='color:red')))}}
> {{=DIV(form.custom.widget.email)}}
> </td>
> </tr>
> <tr>
> <td>{{=DIV(B(T(form.custom.label.phone), SPAN(' *',
> _style='color:red')))}}
> {{=DIV(form.custom.widget.phone)}}
> </td>
> <td>{{=DIV(B(T(form.custom.label.city), SPAN(' *',
> _style='color:red')))}}
> {{=DIV(form.custom.widget.city)}}
> </td>
> </tr>
> <tr>
> <td colspan=2>{{=DIV(B(T(form.custom.label.address), SPAN('
> *', _style='color:red')))}}
> {{=DIV(form.custom.widget.address)}}
> </td>
> </tr>
> <tr>
> <td colspan=2>{{=DIV(B(T(form.custom.label.messages), SPAN('
> *', _style='color:red')))}}
> {{=DIV(form.custom.widget.messages)}}
> </td>
> </tr>
> <tr>
> * <td colspan=2>{{=DIV(Recaptcha(error_message='invalid',
> label='Verify:', options='theme:"white", lang:"fr"'))}}*
> * </td>*
> </tr>
> <tr>
> <td colspan=2>{{=DIV(form.custom.submit)}}
> </td>
> </tr>
> </tbody>
> </table>
> {{=form.custom.end}}
>
> did anyone knows how to achieve it?
> thank you
>
--
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.