validating captcha with jquery
Permalink
i made a contact us page on my website.
there is a controller method call validate()
before the form is sent i validate the captcha using jquery
all validates as planned and works. the problem is when i try to load that check again when the form is submitted.
the:
shows true only once for each captcha then it destroys that session of the captcha or something like that.
how do i prevent that from happening?
thanks a lot. Aryeh.
there is a controller method call validate()
before the form is sent i validate the captcha using jquery
all validates as planned and works. the problem is when i try to load that check again when the form is submitted.
the:
$captcha->check()
shows true only once for each captcha then it destroys that session of the captcha or something like that.
how do i prevent that from happening?
thanks a lot. Aryeh.
That looks like php code, not JavaScript/jQuery.
JavaScript/jQuery works.
the php is only allowing me to validate the captcha once.
the jQuery is sending a post request to another page and checking if the captcha is valid if it is it returns ture, if not it returns false.
once the php gives me a true i can not do the check again.
if i do the check again i will always get false (even if i to it on the same page right after each other).
for example:
will return:
echo $captcha->check(); -> true
echo $captcha->check(); -> false
the php is only allowing me to validate the captcha once.
the jQuery is sending a post request to another page and checking if the captcha is valid if it is it returns ture, if not it returns false.
once the php gives me a true i can not do the check again.
if i do the check again i will always get false (even if i to it on the same page right after each other).
for example:
will return:
echo $captcha->check(); -> true
echo $captcha->check(); -> false
let me try to explain more clearly:
i have a form with a captcha, while the captcha is filled out it sends a request to check if the captcha was put in correctly.
the request gets sent to a php page for validation it sends back to the form if the captcha is valid or not ( and will not allow the form to submit if the captcha is invalid. )
if the form is valid it works to submit the form.
now.. i would like to check again if the captcha was valid on the process page (because if javascript is turned off they can still submit the form).
however since i already checked on another page if the form was valid i can not check again.
i hope i explained it more clear. sorry for the trouble.
i have a form with a captcha, while the captcha is filled out it sends a request to check if the captcha was put in correctly.
the request gets sent to a php page for validation it sends back to the form if the captcha is valid or not ( and will not allow the form to submit if the captcha is invalid. )
if the form is valid it works to submit the form.
now.. i would like to check again if the captcha was valid on the process page (because if javascript is turned off they can still submit the form).
however since i already checked on another page if the form was valid i can not check again.
i hope i explained it more clear. sorry for the trouble.
On the first submission, store the result in $_SESSION. On the second submission, only bother to make the make the captcha check if there is nothing set in $_SESSION.
As the fail behaviour could easily be the same as the no-result yet behaviour, it could be optimised to something like:
As the fail behaviour could easily be the same as the no-result yet behaviour, it could be optimised to something like:
$_SESSION['my_captcha_result'] = $captcha -> check(); if ($_SESSION['my_captcha_result']){ // OK }
if( $_SESSION['my_captcha_result'] || $captcha -> check()){ // OK }
Thinking more, perhaps it could be further optimised to the same code in both cases:
if( $_SESSION['my_captcha_result'] || $captcha -> check()){ // OK $_SESSION['my_captcha_result'] = true; }