Recaptcha 和 Firebase 与 Plain HTML / PHP 和 Kirby
Recaptcha and Firebase with Plain HTML / PHP and Kirby
我正在尝试在 Kirby 网站(PHP 上的 CMS 运行)上实施 firebase,以便访问者可以标记子页面以在着陆页上显示为链接。
为此,我构建了一个表单,用户在子页面上添加他们的名字以突出显示它。单击按钮时表单不会提交,而是使用 JS 将文档添加到 Firebase(可以批准或删除)。
我想防止滥用,并且有兴趣在访问者“提交”页面时添加 Recaptcha 作为一个步骤。
我的代码的简化版本如下所示。
HTML:
<form id="add-item" action="?" method="POST">
<label for="f-name">Submitted by:</label>
<input type="text" id="f-name" name="f-name" placeholder="your name">
<button type="submit">Submit</button>
</form>
JS:
document.querySelector("#add").addEventListener("click", function(e){
const fName = document.querySelector('#f-name').value;
tableRef.get().then(function(querySnapshot) {
var uid = Date.now().toString(36) + Math.random().toString(36).substr(2);
if(fName === true){
tableRef.doc('item-'+uid).set({
contributor: fName,
})
}
});
e.preventDefault();
return false;
})
我找到了使用 Firebase 托管或作为登录方法的 Firebase 启用 Recaptcha 的答案:
Using recaptcha with Firebase
如何与 Angular 或 React 一起使用:
Firebase: Invisible reCaptcha does not work in React JS
我想知道如何仅使用 HTML(无应用程序框架)或使用 PHP 而无需登录来完成此操作?
我是一个非常业余的 Web 开发人员,非常感谢对此的任何见解!如果这是一个明显的问题,我提前道歉。谢谢!
这是添加验证码的代码,但我建议您在后端使用 Php 来验证状态:
首先在head标签中添加这个
<script src='https://www.google.com/recaptcha/api.js'></script>
然后添加站点密钥并阻止错误消息
<div class="g-recaptcha" id="rcaptcha" data-sitekey="site key"></div>
<span id="captchaStatus" style="color:red" /></span>
然后添加脚本标签:
<script>
function checkCaptcha(form)
{
var v = grecaptcha.getResponse();
if(v.length == 0)
{
document.getElementById('captchaStatus').innerHTML="Captcha code is empty";
return false;
}
else
{
document.getElementById('captchaStatus').innerHTML="Captcha completed";
return true;
}
}
</script>
我正在尝试在 Kirby 网站(PHP 上的 CMS 运行)上实施 firebase,以便访问者可以标记子页面以在着陆页上显示为链接。
为此,我构建了一个表单,用户在子页面上添加他们的名字以突出显示它。单击按钮时表单不会提交,而是使用 JS 将文档添加到 Firebase(可以批准或删除)。
我想防止滥用,并且有兴趣在访问者“提交”页面时添加 Recaptcha 作为一个步骤。
我的代码的简化版本如下所示。
HTML:
<form id="add-item" action="?" method="POST">
<label for="f-name">Submitted by:</label>
<input type="text" id="f-name" name="f-name" placeholder="your name">
<button type="submit">Submit</button>
</form>
JS:
document.querySelector("#add").addEventListener("click", function(e){
const fName = document.querySelector('#f-name').value;
tableRef.get().then(function(querySnapshot) {
var uid = Date.now().toString(36) + Math.random().toString(36).substr(2);
if(fName === true){
tableRef.doc('item-'+uid).set({
contributor: fName,
})
}
});
e.preventDefault();
return false;
})
我找到了使用 Firebase 托管或作为登录方法的 Firebase 启用 Recaptcha 的答案:
Using recaptcha with Firebase
如何与 Angular 或 React 一起使用:
我想知道如何仅使用 HTML(无应用程序框架)或使用 PHP 而无需登录来完成此操作?
我是一个非常业余的 Web 开发人员,非常感谢对此的任何见解!如果这是一个明显的问题,我提前道歉。谢谢!
这是添加验证码的代码,但我建议您在后端使用 Php 来验证状态:
首先在head标签中添加这个
<script src='https://www.google.com/recaptcha/api.js'></script>
然后添加站点密钥并阻止错误消息
<div class="g-recaptcha" id="rcaptcha" data-sitekey="site key"></div>
<span id="captchaStatus" style="color:red" /></span>
然后添加脚本标签:
<script>
function checkCaptcha(form)
{
var v = grecaptcha.getResponse();
if(v.length == 0)
{
document.getElementById('captchaStatus').innerHTML="Captcha code is empty";
return false;
}
else
{
document.getElementById('captchaStatus').innerHTML="Captcha completed";
return true;
}
}
</script>