【发布时间】:2020-11-19 20:14:58
【问题描述】:
我正在尝试在 CakePHP 3.x 中实现 recaptcha v3。我的模板页面如下所示:
<?php $this->start('script'); ?>
<script src="https://www.google.com/recaptcha/api.js"></script>
<script type="text/javascript">
function registerSubmit(token) {
document.getElementById("register").submit();
}
</script>
<?php $this->end(); ?>
...
<?php echo $this->Form->create($user, [ 'id' => 'register', 'name' => 'register']) ?>
...
<button type="submit"
data-sitekey="<?php echo Configure::read('Captcha.site')?>"
data-callback='registerSubmit'
data-action='submit'
class="g-recaptcha btn btn-lg btn-secondary text-uppercase">Get Started</button>
<?php echo $this->Form->end(); ?>
据我所知,registerSubmit 调用永远不会被执行,我的表单也不会提交 - 为什么?
我按照Google Developers page上的说明进行操作
【问题讨论】:
-
不确定是不是
button type="submit"导致了问题。可能是它在data-action='submit'之前触发,因此您永远无法使用registerSubmit函数。简而言之,表单是在不调用 JavaScript 的情况下提交的。 -
表单根本不提交。也曾尝试将其作为“按钮”类型。我得到的唯一线索是按下按钮会导致对 Facebook 的调用,所以想知道是否与其他东西发生冲突。
-
这是一个很大的线索是的。您显示的代码没有其他任何建议,如果您想扩展它或自己调试,则由您决定。
-
你有没有想过这个问题?我正在尝试使用 reCaptcha 并输入来自 google 的代码,并且表单不会提交我的名为 submit 的 php 脚本!
标签: php cakephp-3.0 recaptcha-v3