tried the invisible captcha on a new site and get the same problem as before. the Captcha is set up fine as normal. I add the code specified above (directly copy and pasted, using the default “captcha” IDs etc) and the page loads fine - i see the question briefly before the JS hides it, but upon trying to submit a comment, I get the error message asking me to answer the question.
any ideas?
Interestingly, if I remove the code above that hides the question and use it as an alternative Captcha to the image based one, it still doesn’t work (the product of 9 and 1 is 10 right?!!).
Which makes me wonder if its not so much the JS completing the question thats not working but the actual extension itself thats not working…
I just installed this and got it to work, following Mudpuppy’s instructions. I had forgotten that I have to submit the settings even if I don’t want to change the default settings.
Moogaloo, try loading a page with the captcha, with js disabled to see the question. Then look at the exp_captcha table in your database. Look for your ip… does the answer its looking for match the question? If not, or if there is no row for your ip, then yes something is failing in the extension.
I remember we ran into captcha problems when browser session information would get confused. Try clearing user data from your browser, restarting the browser, and load the captcha page again.
I am getting a javascript syntax error on the js that the extension generates. Is anyone else experiencing this issue?
//<![CDATA[
var _51=function(_16, _87, _138){this._138=_138||"captcha";this._16=_16;this._87=_87;this._38();this._43();};_51.prototype={_138:null,_16:null,_87:null,_38:function(){var _106=document.getElementById(this._138+"-container");if(_106)},_43:function(){var _188=document.getElementById(this._138);if(_188){_188.value=((this._16.charCodeAt(0)-70)+(this._87.charCodeAt(0)-110));}}};function _51(){new _51("G","u","");}var _48=window.onload;if(typeof window.onload!="function")else{window.onload=function(){_48();_51();}}
//]]>
OK. I’ve read through this all and found no answer to my question, which is very simply: “What am I missing?” If there’s a CAPTCHA that is both invisible AND answers itself, how does that stop spammy registrations (I’m using it for registrations)??
What am I missing? Is the theory that a spambot doesn’t have javascript and therefore gets halted? If so, what about the low-tech spammer who actually visits your site? He gets through?
In the words of Ricky Riccardo - can someone please ‘splain this to me?
Thanks for this extension, It’s perfect for my needs. Only problem is that about 1 in ~200 page loads, I see a collision between the random numbers it generates and the packed js function names, for example:
//<![CDATA[
var _76=function(_0, _59, _170){this._170=_170||"captcha";this._0=_0;this._59=_59;this._170();this._173();};_76.prototype={_170:null,_0:null,_59:null,_170:function(){var _2=document.getElementById(this._170+"-container");if(_2){_2.style.display="none"}},_173:function(){var _55=document.getElementById(this._170);if(_55){_55.value=((this._0.charCodeAt(0)-65)+(this._59.charCodeAt(0)-111));}}};function _83(){new _76("B","x","");}var _124=window.onload;if(typeof window.onload!="function"){window.onload=_83}else{window.onload=function(){_124();_83();}}
//]]>
Any thoughts on a workaround for this? I’m unfamiliar with jsPack.
Haven’t taken a close look at this jsPack class yet, but it looks like there might be a typo in _encodePrivate():
// special _chars
function _encodePrivate($charCode) {
static $store = array();
while (true) {
// randomize the code some
$code = mt_rand(0, 199);
if (!isset($static[$code])) {
$static[$code] = true;
break;
}
}
return "_" . $code;
}
Shouldn’t those two references to $static[$code] instead be $store[$code] ?
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.