2

基本的に、私は巨大なフォームを持っています。スパムボットを防ぐために reCaptcha を実装する必要があります。

ユーザーが reCaptcha を誤って入力した場合に、フォーム データが失われないようにしたいと考えています。

フォーム、reCaptcha lib、および reCaptcha 初期化コードは、Application.php. このフォームは に投稿しapplication_confirm.phpます。application_confirmフォームデータを電子メール形式に処理して管理者に送信する別のファイルが含まれています。

Application.php別のphpページで必要です(皮肉なことに、application.phpというタイトルでもあります-これはユーザーがアクセスするページであり、フォームhtmlは前述のApplication.phpからrequire('content/Application.php')

何をする必要があるのか​​ 、キャプチャの有効性チェックをどこに配置する必要があるのか​​ 本当にわかりません-どんな助けも大歓迎です!

4

4 に答える 4

0

これは、reCaptcha が失敗した場合にフォーム データを保持する recaptcha の実例ですか?

<script type="text/javascript">
    var RecaptchaOptions = {
        lang: 'en',
        theme: 'custom',
        custom_theme_widget: 'recaptcha_widget'
    };
</script>               

<div class="control-group">

    <div id="recaptcha_widget" style="display:none">

        <input type="text" id="recaptcha_response_field" name="recaptcha_response_field" class="required"/>

        <div id="recaptcha_image"></div>

        <div class="recaptcha_only_if_incorrect_sol" style="color:red">Incorrect please try again</div>

        <div><a href="javascript:Recaptcha.reload()">Get another CAPTCHA code</a></div>
    </div>

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

    <noscript>
    <iframe src="http://www.google.com/recaptcha/api/noscript?k=YOURKEY" 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>                                                 

    <?php
    require_once('captcha/recaptchalib.php');
    $publickey = "YOURKEY"; // you got this from the signup page
    echo recaptcha_get_html($publickey);
    ?>      

</div><!-- control grp captcha --> 
于 2013-09-05T16:41:26.243 に答える
0

AJAX を使用して、イベント onsubmit をフォーム タグに使用して、フォームの値をセッションに保存するページに値を送信できます。

次に、基本的に「FirstName」という名前の入力があったとします

<form onsubmitup='PreserverValues();'/>

次に、基本的にすべての入力を次のように変更します

<input type='text' name='FirstName' value='<?php if isset($_SESSION['FirstName']) echo $_SESSION['FirstName']; ?>'/>
于 2013-09-05T15:04:10.570 に答える