出于某种原因,我不能再在Drupal安装中以匿名用户的身份发表评论。我有一段时间没试过,所以我不太确定这个功能何时被破坏了。
我安装了服务,我可以使用comment.save
发布匿名评论。我改变了Input Formats
,如果这可能会破坏某些东西。
我在匿名用户上启用了post comments
和access comments
。注释未显示在数据库中。实际上,当我尝试以匿名方式评论时,未调用本机Drupal函数comment_save
(我通过在print_r($edit);die();
comment_save
函数的顶部添加comment.module
来检查这一点此外,我读到一些没有UID 0的用户会破坏匿名评论,这个用户存在(显然,因为通过服务工作评论)
我已经尝试了AntiSpam
模块,并发布了一条匿名评论,可以在垃圾邮件过滤器中被捕获(并且已经被捕获),但此模块现已禁用。
我在这里真的没有想法,有没有人有什么其他建议怎么办?与此同时,我将尝试回溯代码,找出为什么comment_save()
没有被调用。
编辑:匿名用户也不必提交电子邮件等,如果这有任何问题,我也不必发帖。
答案 0 :(得分:1)
根据你的说法,我怀疑问题是在评论表单上挂起一些贡献代码并以一种使其失败提交的方式修改它。这可能是由多种原因造成的:一个jQuery,它在不重新生成服务器上的form-id的情况下向表单添加字段,一个更改回调以提交表单的添加或cusomised字段等等。
我无法确切地知道这一点,但如果我是你,我会怎么做,以便检查你的装置是什么:
确保您已卸载(并且不仅禁用)您尝试过的模块,并且不再使用。模块永远不应该触及核心表,但谁知道......它不会花费任何成本,它实际上释放了你的一些数据库。
尝试禁用所有的贡献模块,看看你是否可以这样评论。如果是这种情况,请一次激活一个contrib模块,直到找出哪个是罪魁祸首。您可能已在http://drupal.org上的该模块的问题队列中找到补丁/变通方法。如果您没有找到修复程序,我会调查(xdebug或手动跟踪)代码,我会特别关注hook_form_alter()
和hook_form_FORM_ID_alter()
的所有实现。
如果即使禁用所有的贡献模块也无济于事(我会非常惊讶),尝试使用全新安装更新核心如果您认为可能是您的猫在打开核心文件时走在键盘上,或you live with Gordon Brown's family。
如果做不到这一点,我想到的唯一选择就是更加深奥,例如数据库失败,浏览器上的一个关键词脚本会干扰评论以及类似的可能性。
HTH!
答案 1 :(得分:1)
我通过重置权限表(http://drupal.org/node/64114)解决了这个问题,但我会做一个正确的备份,并在标签中打开权限页面,以防万一。