【问题标题】:Spamprotection / Recaptcha on SS4SS4 上的垃圾邮件防护 / Recaptcha
【发布时间】:2019-06-25 02:19:03
【问题描述】:

我无法让silverstripe-recaptchasilverstripe-spamprotectionsilverstripe-userforms 一起在SS4 上工作。

在我的应用程序/_config/spamprotection.yml 中:

SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension:
  default_spam_protector: SilverStripe\Recaptcha\RecaptchaProtector

在我的应用程序/_config/recaptcha.yml 中: 注意:已尝试在 api 键周围加引号和不加引号。

SilverStripe\Recaptcha\RecaptchaField:
  public_api_key: xxx
  private_api_key: xxx

我有:

  • 完成了开发/构建和 ?flush
  • 在我的用户表单中添加了反垃圾邮件字段

控制台中没有错误/警告。

有人搞定这个吗? 你能看出我遗漏了什么吗?

【问题讨论】:

  • 我已经在本地对此进行了测试,它对我有用。 SilverStripe 4、recaptcha 模块、垃圾邮件防护模块、用户表单模块。 spamprotection.yml 和 recaptcha.yml 如上所述。带有几个字段和一个垃圾邮件保护字段的简单用户表单。它对我有用。
  • 也许SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension 正在其他地方的另一个配置中被覆盖。检查你所有的app/_config/ yml 文件,看看FormSpamProtectionExtension 是否在其他地方被重新定义。或者用户表单页面中的字段可能尚未发布。尝试再次发布页面并检查垃圾邮件字段是否仍然出现在后端的字段列表中。
  • 它被另一个模块覆盖。感谢您的建议。

标签: silverstripe silverstripe-4


【解决方案1】:

问题是另一个模块正在设置 SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension,覆盖了我的 app/_config/spamprotection.yml 文件中的设置。

一种解决方案是将我们的spamprotection.yml 设置为在其他模块的 yml 文件之后加载。我们可以通过在 yml 文件的顶部添加以下内容来做到这一点:

---
Name: app-spamprotection
After: '#galadriel'
---
SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension:
  default_spam_protector: SilverStripe\Recaptcha\RecaptchaProtector

在上面的例子中,galadriel 是在另一个模块的 yml 文件中设置的Name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2021-05-16
    相关资源
    最近更新 更多