2

コードをホストしているサーバーは、coldfusion 4.5 を実行しています。問題のページはフレームセットなので、直接リンクすることはできません。

それはこのページです: http://www.palosverdes.com/calendar/、そして「管理者」の下の右側にあるサインアップリンク。

現在そこにあるコードは、ブロックされたコンテンツを許可した後、IE で期待どおりに機能します。コードは次のとおりです。

<cfscript>
CHALLENGE_URL = "http://api.recaptcha.net";
SSL_CHALLENGE_URL = "https://api-secure.recaptcha.net";
VERIFY_URL = "http://api-verify.recaptcha.net/verify";
</cfscript>

<cfif isDefined("form.recaptcha_challenge_field") and isDefined("form.recaptcha_response_field")>

<cftry>
    <cfhttp url="#VERIFY_URL#" method="post" throwonerror="true">
        <cfhttpparam type="formfield" name="privatekey" value="6LfwVs0SAAAAAIlIJpLDvIay_d5G0RncS0VSrnV0">
        <cfhttpparam type="formfield" name="remoteip" value="#cgi.REMOTE_ADDR#">
        <cfhttpparam type="formfield" name="challenge" value="#form.recaptcha_challenge_field#">
        <cfhttpparam type="formfield" name="response" value="#form.recaptcha_response_field#">
    </cfhttp>
<cfcatch>
    <cfthrow  type="RECAPTCHA_NO_SERVICE"
        message="recaptcha: unable to contact recaptcha verification service on url '#VERIFY_URL#'">
</cfcatch>
</cftry>

<cfset aResponse = listToArray(cfhttp.fileContent, chr(10))>
<cfset form.recaptcha = aResponse[1]>
<cfset structDelete(form, "recaptcha_challenge_field")>
<cfset structDelete(form, "recaptcha_response_field")>

<cfif aResponse[1] eq "false" and aResponse[2] neq "incorrect-captcha-sol">
    <cfthrow type="RECAPTCHA_VERIFICATION_FAILURE"
        message="recaptcha: the verification service responded with error '#aResponse[2]#'. See http://recaptcha.net/apidocs/captcha/ for error meanings.">


</cfif>



<cfelse>

<cfset form.recaptcha = false>

</cfif>


<cfif isdefined("form.recaptcha") and form.recaptcha neq "false">
<cfinclude template="addorgresults.cfm">
<cfelse>

このページhttp://www.palosverdes.com/sandbox/captchatest.cfmを使用して、キャプチャ自体が正しく機能していることを確認したので、キャプチャをフレームセットに入れることと関係があると思います。何か案は?

4

1 に答える 1

2

Firefox で動作しない理由:

api-secure.recaptcha.net は無効なセキュリティ証明書を使用しています。

証明書は www.google.com に対してのみ有効です

(エラー コード: ssl_error_bad_cert_domain)

テスト 1 (動作する) と動作しない 2 つの異なるコード セットを使用しているようです。

壊れているもの:

<script type="text/javascript"
   src="https://api-secure.recaptcha.net/challenge?k=6LfwVs0SAAAAAClnUJ5XD7O19d9ZdlGBFgAn8Gws">
</script>


<noscript>
   <iframe src="https://api-secure.recaptcha.net/noscript?k=6LfwVs0SAAAAAClnUJ5XD7O19d9ZdlGBFgAn8Gws"
       height="300" width="500" frameborder="0"></iframe><br>
   <textarea name="recaptcha_challenge_field" rows="3" cols="40">
   </textarea>
   <input type="hidden" name="recaptcha_response_field"
       value="manual_challenge">
</noscript>

動作するもの:

<script type="text/javascript"
 src="http://www.google.com/recaptcha/api/challenge?k=6LfwVs0SAAAAAClnUJ5XD7O19d9ZdlGBFgAn8Gws">

</script>
<noscript>
 <iframe src="http://www.google.com/recaptcha/api/noscript?k=6LfwVs0SAAAAAClnUJ5XD7O19d9ZdlGBFgAn8Gws"
     height="300" width="500" frameborder="0"></iframe><br>
 <textarea name="recaptcha_challenge_field" rows="3" cols="40">
 </textarea>
 <input type="hidden" name="recaptcha_response_field"
     value="manual_challenge">
</noscript>

api-secure.recaptcha.net最初の URL を からに変更する必要があると思いますgoogle.com/recaptcha/api

于 2012-07-17T20:05:35.470 に答える