使用 php 将验证码添加到此 Web 按钮
我有一个页面,其中包含一些我尚未完全理解的 php 代码
,并且我有一个使用 recaptcha 的 php 代码片段,我认为我对此有相当不错的处理。
我还不确定如何将两者整合起来。
我在验证码代码中看到它触发事件的位置,但我不确定如何阻止按钮直到验证码完成。
现有的代码是:
<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>
I have a page with some php code that i don't fully understand yet
and i have a php snippet for using recaptcha that i think i have a pretty decent handle on.
I'm not sure how to integrate the two yet.
I see in the captcha code where it triggers the event but im not sure how to block the button till the captcha is done.
The existing code is:
<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>
The captcha code I have is
EDIT: THIS IS NO MY KEY.......PLEASE DO NOT WORRY.......NOT MY KEY, IT IS FAKE........EVERYTHING IS OKAY
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,您在问题中包含了您的 reCAPTCHA 私钥,为了确保您的 CAPTCHA 安全,您应该始终将其保密。
其次,您包含的代码是验证码的处理代码,而不是使其在表单中显示的代码。您需要将此代码放在您希望验证码显示的位置:
另一个块必须位于处理页面的顶部 - 根据表单的操作来判断,那就是 gdform.php:
当然,要使其中任何一个工作,您还必须有 reCAPTCHA PHP 库和您自己的公钥/私钥对。如果您没有这些,请从 reCAPTCHA 网站获取。
有关详细信息,请阅读 reCAPTCHA PHP 快速入门。
First of all, you included your reCAPTCHA private key in your question, and that's something you should always keep private in order to keep your CAPTCHA secure.
Secondly, the code you included is the processing code for the CAPTCHA, not the code to make it display in your form. You need to put this code where you want the CAPTCHA to display:
The other block has to go at the top of your processing page—judging by your form's action, that's gdform.php:
Of course, for any of this to work, you must also have the reCAPTCHA PHP library and your own public/private key pair. If you don't have those, get them from the reCAPTCHA site.
For more information, read the reCAPTCHA PHP Quickstart.