reCaptcha正在发送消息而不激活reCaptcha,昨晚我收到了300多条消息。
请帮助我如何添加,以便仅在按钮被激活时才发送reCaptcha。发送发送效果很好但不能激活reCaptcha。
要在我的模板中启动contact.html,我就这样说了:
<!-- Start formulario de contacto -->
<div class="row">
<div class="col-md-9">
<h2>Formulario de contacto</h2>
<form action="php/contact-form.php" id="contact-form">
<div class="alert alert-success hidden" id="contact-alert-success">
<strong>Mensaje enviado correctamente!</strong> Muchas gracias, pronto nos pondremos en contacto con usted, normalmente nuestro tiempo de respuesta es inferior a 2 horas.
</div>
<div class="alert alert-danger hidden" id="contact-alert-error">
<strong>Error!</strong> A sucedido un error si lo desea puede contactarnos directamente en XXXX@tize.XXXX
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label>Nombre <span class="required">*</span></label>
<input type="text"
value=""
data-msg-required="Por favor introduzca su nombre"
class="form-control"
name="name" id="name">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label>eMail <span class="required">*</span> </label>
<input type="email"
value=""
data-msg-required="Por favor introduzca su eMail"
data-msg-email="Por favor introduzca un eMail válido"
class="form-control"
name="email"
id="email">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label>Asunto <span class="required">*</span></label>
<input type="text"
value=""
data-msg-required="Por favor introduzca el asunto"
class="form-control"
name="subject"
id="subject">
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>Mensaje <span class="required">*</span></label>
<textarea
data-msg-required="Por favor introduzca su mensaje"
rows="10"
class="form-control"
name="message"
id="message"></textarea>
</div>
</div>
</div>
<!-- Start Google Recaptcha -->
<div class="g-recaptcha" data-sitekey="6Lc88P4SAAAAANiT-ZXILUo-ET4xQmbivHy7uHc8"></div><br>
<!-- End Google Recaptcha -->
<div class="row">
<div class="col-md-12">
<input type="submit" value="Enviar mensaje" class="btn btn-primary" data-loading-text="Cargando...">
</div>
</div>
</form>
</div>
<!-- End formulario de contacto -->
以php形式发送消息的帖子有contact-form.php:
<?php
session_cache_limiter('nocache');
header('Expires: ' . gmdate('r', 0));
header('Content-type: application/json');
// Enter your email address
$to = 'XXXX@tize.XX';
$subject = $_POST['subject'];
if($to) {
$name = $_POST['name'];
$email = $_POST['email'];
$fields = array(
0 => array(
'text' => 'Name',
'val' => $_POST['name']
),
1 => array(
'text' => 'Email address',
'val' => $_POST['email']
),
2 => array(
'text' => 'Message',
'val' => $_POST['message']
)
);
$message = "";
foreach($fields as $field) {
$message .= $field['text'].": " . htmlspecialchars($field['val'], ENT_QUOTES) . "<br>\n";
}
$headers = '';
$headers .= 'From: ' . $name . ' <' . $email . '>' . "\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
if (mail($to, $subject, $message, $headers)){
$arrResult = array ('response'=>'success');
} else{
$arrResult = array ('response'=>'error');
}
echo json_encode($arrResult);
} else {
$arrResult = array ('response'=>'error');
echo json_encode($arrResult);
}
?>
我的表格图片,如果有人想看我的网站,请告诉我并发送链接。非常感谢你。发送而不激活reCaptcha http://goo.gl/oSLQG9
答案 0 :(得分:0)
1。)缺少使用当前提供的代码<script src='https://www.google.com/recaptcha/api.js'></script>
,这是重新连接工作所必需的。
2。)根据Google关于Re-Captcha的文档,Google会针对经过验证/未经验证的提交发送回复,您必须使用$ _GET调用来评估成功/失败的响应。< / p>
来自Google Re-Captcha第2步 - 服务器端集成:
当您的用户提交集成了reCAPTCHA的表单时,您就可以了 作为有效负载的一部分获取具有名称的字符串 &#34; G-验证码 - 响应&#34 ;.要检查Google是否已经过验证 该用户使用以下参数发送GET请求:
网址:https://www.google.com/recaptcha/api/siteverify 秘密(必填)6LedHvoSAAAAAN4cRa8x1FaVsKPsMrs8SGMqp4ef 响应(必填)&#39; g-recaptcha-response&#39;的值。 remoteip 最终用户的IP地址。
简而言之 - 我没有在您提供的代码中看到所需的SCRIPT链接,我也看到没有实现对Google重新验证码的$ _GET调用,以验证重新验证码的成功/失败。用户。
请确保您正在使用Google提供的工具/说明,以便在此处进行集成:
答案 1 :(得分:0)
从代码中,我看不到私钥和公钥的链接和声明。 我自己用它来处理它:
1.将google-recaptcha文件放在目录中。 2.declare on contact.php,as:
require_once('../recpatcha_google.php');
$publickey = '6LcZIfxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$privatekey = '6LcZIf8Sxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
3.检查用户是否验证并通过验证码:
$resp = recaptcha_check_answer ($privatekey,$_SERVER['REMOTE_ADDR'],strip_tags($_POST['recaptcha_challenge_field']),strip_tags($_POST['recaptcha_response_field']));
if (!$resp->is_valid) { //if not true ......
................
}
4.拨打表格中的验证码,如下:
<?php echo recaptcha_get_html($publickey); ?>
注意:不要忘记在WWW或没有WWW的情况下注册您的网站,以确保一切正常。