-1

まだ完全には理解していない php コードを含むページがあります

そして、recaptcha を使用するための php スニペットがあり、かなりまともなハンドルを持っていると思います。

2つを統合する方法はまだわかりません。

イベントをトリガーするキャプチャコードが表示されますが、キャプチャが完了するまでボタンをブロックする方法がわかりません。

既存のコードは次のとおりです。

<div id="colOne">
<h2>Contact Us</h2>
<form action="gdform.php" method="post"> 

<table border="0" cellpadding="2" cellspacing="2" summary="feedback form" align="center">
<tbody>
<tr>
<td colspan="2">
<p>Please fill out the fields below with your information and your question
            <br />or comment and we will get back to you as soon as possible.</p>
</td>
</tr>
<tr>
<td align="left">Name:<span style="color: #ff0000;">*</span></td>
<td><input type="text" name="name" size="25" /></td>
</tr>
<tr>
<td align="left">Email Address:<span style="color: #ff0000;">*</span></td>

<td><input type="text" name="email" size="25" /></td>
</tr>
<tr>
<td align="left">Phone:</td>
<td><input type="text" name="phone" size="25" /></td>
</tr>
<tr>
<td align="left">Subject:<span style="color: #ff0000;">*</span></td>
<td><input type="text" name="subject" size="25" /></td>
</tr>
<tr>
<td colspan="2" align="left">Comments: <span style="color: #ff0000;">*</span><br /><textarea rows="20" cols="50" name="comments"></textarea></td>

</tr>
<tr>
<td colspan="2" align="center"><span style="color: #ff0000;">*</span> Required Fields</td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" value="Send Request" /><br /></td>
</tr>
</tbody>
</table>
</form></div>

私が持っているキャプチャコードは

編集: これは私のキーではありません.......心配しないでください.私のキーではありません.偽物です....すべて問題ありません

<form action="" method="post">
<?php

    function sendmail()
    {
      echo "you got it";
    }

require_once('recaptchalib.php');

// Get a key from http://recaptcha.net/api/getkey
$publickey = "6LeWIAgAAAAAAPA9picBEVB18lDgGVIOIav";
$privatekey = "6LeWIAgAAAAAABViAnDjvKXxWtJGBoRaWXe";

# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = null;

# was there a reCAPTCHA response?
if ($_POST["recaptcha_response_field"]) {
        $resp = recaptcha_check_answer ($privatekey,
                                        $_SERVER["REMOTE_ADDR"],
                                        $_POST["recaptcha_challenge_field"],
                                        $_POST["recaptcha_response_field"]);

        if ($resp->is_valid)
        {

                //echo "You got it!";
                sendmail();

        } 
        else 
        {
                # set the error code so that we can display it
                $error = $resp->error;
        }
}
echo recaptcha_get_html($publickey, $error);
?>
    <br/>
    <input type="submit" value="submit" />
    </form>
4

1 に答える 1

1

まず、質問に reCAPTCHA 秘密鍵を含めました。これは、CAPTCHA を安全に保つために常に非公開にしておく必要があるものです。

次に、含めたコードは CAPTCHA の処理コードであり、フォームに表示するためのコードではありません。CAPTCHA を表示する場所に次のコードを配置する必要があります。

require_once('recaptchalib.php');
$publickey = "..."; //enter your public key here
echo recaptcha_get_html($publickey);

もう 1 つのブロックは、処理ページの上部に配置する必要があります — フォームのアクションから判断すると、それは gdform.php です。

require_once('recaptchalib.php');
$privatekey = "...";
$resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);

if (!$resp->is_valid) {
  die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
       "(reCAPTCHA said: " . $resp->error . ")");
}

もちろん、これを機能させるには、reCAPTCHA PHP ライブラリと独自の公開鍵と秘密鍵のペアも必要です。持っていない場合は、reCAPTCHAサイトから入手してください。

詳細については、reCAPTCHA PHP クイックスタートを参照してください。

于 2009-09-08T14:25:04.633 に答える