【问题标题】:CAPTCHA module not disabling cache验证码模块未禁用缓存
【发布时间】:2012-10-11 15:15:16
【问题描述】:

我有一个安装了 CAPTCHA 和 ReCAPTCHA 模块的 Drupal 7 站点,但缓存有问题(但不是正常问题!)。问题是我的用户注册页面上应该显示一个验证码,但有时这个验证码会停止显示,直到我通过管理 -> 性能 -> 清除所有缓存手动清除缓存。

我正在检查 Chrome 中的匿名窗口,以确保 Drupal 无法识别我并且不显示 CAPTCHA,即使我将 CAPTCHA 的持久性设置设置为“始终添加挑战”

我尝试过使用 CAPTCHA 和缓存设置,但似乎没有任何影响。所有其他在线信息似乎都与如何在 CAPTCHA 页面上重新启用缓存有关,而我的问题恰恰相反。

我还成功地在其他 Drupal 7 构建中使用了 CAPTCHA,没有任何问题,但不知道为什么这个有问题。

该网站是http://respirometry.org。如果您进入用户注册页面,您可能会看到也可能不会看到验证码,这取决于我多久之前手动清除了缓存。

我查看了 Drupal 的日志,发现当 CAPTCHA 停止工作时,我收到了关于 file_temp_location 的错误。我去了Admin -> File System,把“Temporary Directory”改成/tmp,没有报错。

该错误似乎与 ISPConfig 设置站点的方式有关。它可以通过 drupal.respirometry.org 或 respirometry.org 访问,它们的 openbasedir 设置略有不同,所以我的选择似乎是将临时目录设置为 /tmp,或者更改两个站点上的 openbasedir 设置,以便他们可以访问彼此的临时目录。

【问题讨论】:

  • 在主 CAPTCHA 设置页面上的持久性设置是什么?我刚刚访问了您的网站,但无法复制,但稍后会再试一次。
  • 设置为“总是添加挑战”

标签: php drupal-7


【解决方案1】:

问题是由无效的临时文件位置引起的。服务器和 HTTP 主机别名的性质导致某些请求无法写入临时位置。这导致了阻止 CAPTCHA 工作的级联。我将别名修改为全部重定向到主 URL,并将临时文件夹更改为 /tmp 只是为了更好地衡量,验证码在 24 小时内保持完好无损。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多