For all projects that we plan to launch in the next couple of months we are using Drupal 6. We had to have the registration forms live with Captcha enabled! Drupal 6 Captcha module was in development. We decided we would use it and start addressing the issues as and when we faced them. We were pretty confident as there was a working Drupal 5 version for us to compare with.
Even while we tested it, we had some problems with the Captcha not functioning on form validate. The Captcha was not refreshing because of the form cache in Drupal 6. We have temporarily resolved by clearing the cache on every form load. This should not be the ideal way to approach the problem. We must actually refresh only the Captcha element and the rest of the form must be cached. How do we define a dynamic element within a form which doesn't get cached and gets refreshed??
My colleague Nagaraj helped us resolve this issue and identify the problem.
Links:
http://drupal.org/project/captcha
http://drupal.org/node/312154
DO we really need Captcha, want to try: Safer forms!, a suggestion by Mr. Vasanth Govind.
Saturday, September 27, 2008
Subscribe to:
Post Comments (Atom)
I can feel that giving more suggestions are more simpler than finding an accurate solution and implementing that.
ReplyDeletePlease try out my suggestions and find out any of them can be your solution.
Suggestion 1
Try using Jquery, have some hidden data based on time and secret word to validate the spammers.
Check this link out and learn more about this technique
http://15daysofjquery.com/examples/contact-forms/
This technique will enhance the user experience as they don want to scrub their eyes and find the captcha words.
This technique needs the user to turn on their javascrpt on.
Suggestion 2
If I am right the problem is that the same old captcha image is getting rendered due to cache.
This can be solved by loading the captcha image alone dynamically with an Ajax request with out clearing the chache.
Check out this link:
http://mohdshaiful.wordpress.com/2007/05/31/form-elements-generation-using-jquery/
here they are appending a form element.
But in our case we need to old element and refill new image.
Bit tedious ... ;-)