我只是用复选框设置了新的google recaptcha,它在网站端工作正常,但是我不知道如何在服务器端使用php进行操作,我尝试使用下面的旧代码,但即使是不使用recaptcha.
require_once('recaptchalib.php');
$privatekey = "my key";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
$errCapt='<p style="color:#D6012C ">The CAPTCHA Code wasnot entered correctly.</p>';}
Run Code Online (Sandbox Code Playgroud) 由于我一直在测试网站,我发现reCAPTCHA越来越难以阅读.是我或其他人也有这个问题吗?
与此同时,我今天早上有一位用户抱怨他们在reCAPTCHA中收到一个英镑字符.当然用户不知道该怎么做,即使我有消息说他们可以点击重新加载/刷新图标来获得新的CAPTCHA.
不幸的是,这个实现是在60岁以上的人经常使用的网站上,因此更复杂或令人困惑的CAPTCHA是一个问题,但该网站仍然收到很多人试图产生垃圾邮件.
我们刚刚开始实施新的google recaptcha,如https://www.google.com/recaptcha/intro/index.html所示
然而,新方法似乎包含在iFrame中而不是嵌入到页面中,因此使CSS应用更加困难.
然而,我们的形状是400px宽,所以我希望重新获得相同的宽度.
目前它看起来像,但我们喜欢与其他人一样.
有人知道怎么做吗?
谢谢

新的Recaptcha 2看起来很有希望,但我没有找到在ASP.NET服务器端验证它的方法,
if(Page.IsValid)在这个答案中,对旧的Recaptcha有效,但不适用于新的,
如何在服务器端验证新的reCAPTCHA?
我已经实现了我的reCAPTCHA,如示例中所示.
我在head标签中有这个脚本:
<script src="https://www.google.com/recaptcha/api.js"></script>
Run Code Online (Sandbox Code Playgroud)
在我form的HTML中我有:
<div class="g-recaptcha" data-sitekey="my public sitekey here"></div>
Run Code Online (Sandbox Code Playgroud)
但是当我加载时,form我收到此错误:
错误:站点密钥的域无效
我已确认这是我的域名的正确站点密钥.
代码目前在子域中,所以我想也许这就是问题所以我也将子域添加到Google reCAPTCHA管理员但仍然得到错误.
完全相同的代码在不同的域中使用100%(具有特定于该域的密钥).
可能是什么问题呢?
我正在寻找JCaptcha的替代品,它似乎不再维护,并且开始时并不是很好.替换必须与JavaEE webapps很好地集成.
我可以看到,有三种选择:
有没有人使用过他们推荐的其他人?
我有一个非常简单的表格如下.我想这样做是为了禁止提交按钮,并且仅在用户成功完成ReCaptcha 后启用.
我假设我需要一些Javascript/jQuery才能做到这一点.
谷歌关于ReCaptcha 2.0的文档似乎非常稀疏和密集(无论如何).我很感激一些指示:
<form action="something.php" method="post">
Name: <input type="text" size="40" name="name"><br><br>
<div class="g-recaptcha" data-sitekey="############-#####"></div>
<input type="submit" value="Submit" >
</form>
Run Code Online (Sandbox Code Playgroud) 我设法让ReCaptcha 2.0在我的网站上运行.但是,它只在我不使用AJAX时才有效,我让表单"自然地"提交.
我想使用验证码提交表单,并在不刷新页面的情况下提醒用户注意成功.
我尝试了以下代码,但似乎服务器没有得到用户响应:
HTML:
<form class="form" action="javascript:void(0)" novalidate>
<!-- all the inputs... -->
<!-- captcha -->
<div class="input-group">
<div class="g-recaptcha" data-sitekey="6LdOPgYTAAAAAE3ltWQGar80KUavaR-JblgPZjDI"></div>
</div>
<div class="errors" id="errors" style="display: none"></div>
<div class="input-group">
<input type="button" value="Send" class="btn-default right" id="submit">
<div class="clear"></div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
JS:
$('#submit').click(function(e) {
console.log('clicked submit'); // --> works
var $errors = $('#errors'),
$status = $('#status'),
name = $('#name').val().replace(/<|>/g, ""), // prevent xss
email = $('#email').val().replace(/<|>/g, ""),
msg = $('#message').val().replace(/<|>/g, "");
if (name == '' || email == '' …Run Code Online (Sandbox Code Playgroud) 经过几个小时的研究和反复试验后,我终于能够将新的谷歌No Capatcha re Capatcha添加到我的表格中并使其正常工作,但出于某种原因它不会让任何人有任何想法?
<!-- reCapatcha -->
<div id="capatcha">
<div class="g-recaptcha" data-sitekey=""></div>
</div>
#capatcha {
margin: 0 auto;
display: block
}
Run Code Online (Sandbox Code Playgroud) 我正在使用recaptcha和我的laravel应用程序.
我只是想使用jquery检查recaptcha对表单提交的响应,并通过提醒验证验证码的警告来停止用户.
但是,即使没有填写验证码,我也无法停止表单提交.
这是我的代码.
$('#payuForm').on('submit', function (e) {
var response = grecaptcha.getResponse();
if(response.length == 0 || response == '' || response ===false ) {
alert('Please validate captcha.');
e.preventDefault();
}
});
<div class="captcha">
{{ View::make('recaptcha::display') }}
</div>
Run Code Online (Sandbox Code Playgroud)
我在浏览器控制台中收到此错误,表单将被提交.
Error: ReCAPTCHA placeholder element must be empty
Run Code Online (Sandbox Code Playgroud)