当JavaScript函数被调用时,为什么我的Drupal站点会注销用户?

问题描述:

我有Drupal 5网站点击一个按钮,它调用一个JavaScript函数。该函数基本上构建一个字符串,然后重定向到我们网站上的另一个页面。点击按钮后,有时用户会注销并看到“访问被拒绝”屏幕,即使他们先前已登录。他们被重定向的页面与前一页面具有相同的访问限制,但无论如何,他们不应该被注销。当JavaScript函数被调用时,为什么我的Drupal站点会注销用户?

一个用户发生这种情况的时间大约有一半(另一半的时间是按照它应该的方式工作的),另一个用户报告总是在点击该按钮时被注销。但是,我总是能够顺利地运行它,并且我怀疑它使用的是IE6。有没有人遇到过这个问题,或者有什么可能导致这个问题的想法?我搜索并发布在Drupal论坛上,并在此论坛中搜索,并且还没有运气。

+0

从“drupal 5”重新签名到只有drupal。 5不是最好的标签:) – Swati 2008-09-23 00:26:32

想到很多事情。

  • 页面是否被重定向到同一个域? domain.com和www.domain.com是不一样的饼干(取决于它们如何设置)..
  • 你可以在任何浏览器100%可靠地重现它?用户不会冒犯用户,但用户是骗子(或者至少在报告技术缺陷方面不好)。我不会相信用户告诉我的事实(“哦,是的,是的,我在尝试之间关闭了浏览器,但这应该不重要。”)。
  • 服务器上是否有正在运行的服务器正在清除会话,或者会话过期限制是否设置太慢?

道德:先去尝试再现问题,这样你就可以精确地缩小它到底是什么。我建议使用Firebug + Firecookie来调试Firefox和一般的Cookie问题,并且提供用于调试IE的Fiddler2(代理)。

+0

非常好的建议。 – 2008-09-23 00:30:25

我认为说实话,最好的办法是发布导致此问题的代码。

Drupal使用PHP会话来做到这一点,它使用cookies ...做任何用户的cookies关闭?

有许多事情可能导致这种情况,重定向做了一个不同的领域,清除会话(/ tmp清理?),但通常,我会把这样的东西放到浏览器。

问他们他们是否仍然可以使用其他浏览器(尝试Firefox)重现...检查他们的cookie安全设置,等等。