我希望有人通过我的个人页面(移动和桌面友好)与我联系,但我不希望我的手机号码被机器人刮掉。所以我想我可以让用户访问我的网页,查看Google reCAPTCHA表单以访问我的电话号码。
<form action="?" method="POST">
<div class="g-recaptcha" data-sitekey="6Lc5XQ4TAAAAAN18KgCH-E-tVEVnzwP80NDX9v9Q"></div>
<br/>
<input type="submit" value="Submit">
</form>
那么我该怎样做表格动作呢?我不希望我的号码使用“tel:”标准,因为我的号码仍然可以在源代码中看到。
总之,我只是想知道在没有透露电话号码或允许机器人刮擦的情况下以编程方式实例化电话的最佳方式是什么。
提前致谢!
答案 0 :(得分:1)
AFAIK,您不能仅在客户端使用reCaptcha。
您需要一种服务器端语言(仅)来处理和验证验证码请求。
例如,像PHP一样。
答案 1 :(得分:0)
您将提交的表单数据中的g-recaptcha-response
读取服务器端程序的URL,并将其验证为described in the documentation,然后输出错误消息或包含您的联系人详细信息的HTML文档。< / p>
答案 2 :(得分:0)
...如果我包含reCAPTCHA表单...如何保存Google的siteverify端点的结果?我是否需要其他一些Javascript来捕获结果并用电话号码链接替换reCAPTCHA?
当然,你需要一些基于Javascript浏览器的逻辑来验证真人对抗机器人。请参阅我的回答和完整的here。
在我的回答中,对thre proxy.php的ajax调用使用户可以进行验证。 因此,如果成功,您可以对服务器进行另一次ajax调用,以检索您的电话号码并插入而不是 g-recaptcha 代码。因此,您可以通过将您的电话号码设置为仅被证明是人类的人来保持隐私:
...
var url='proxy.php?url=' + 'https://www.google.com/recaptcha/api/siteverify';
$.ajax({ 'url' : url,
dataType: 'json',
data: { response: response},
success: function( data ) {
var res = data.success.toString();
// alert( "User verified: " + res);
if (res == 'true') {
$.ajax( url: '<url to fetch your phone number>',
success: function( phone ){
document.getElementById('g-recaptcha').innerHTML = phone;
} // end of success for phone
); // end of $.ajax to get phone
} // end if
} // end of success for user verify
}); // end of $.ajax to proxy.php