为什么在调用Javascript函数时,我的Drupal站点会注销用户?

时间:2020-03-06 14:34:24  来源:igfitidea点击:

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

一个用户发生这种情况的时间大约是一半(另一半可以正常工作),另一位用户报告说单击该按钮时总是被注销。但是,我始终可以在使用的计算机上顺利运行它,并且我怀疑它与使用IE6的计算机有关。有没有人遇到过这个问题,或者有什么想法可能导致这个问题?我已经在Drupal论坛中进行搜索和发布,并且在该论坛中进行了搜索,但是还没有碰到运气。

解决方案

我想到了很多事情。

  • 页面是否被重定向到同一域上?至于cookie,domain.com和www.domain.com并不相同(取决于它们的设置方式)。
  • 我们可以在任何浏览器中可靠地重现100%吗?对用户没有冒犯,但用户是骗子(或者至少不善于报告技术错误)。我不相信用户告诉我的事实("哦,是的,是的,我在两次尝试之间都关闭了浏览器。但这没关系。")。
  • 服务器上是否正在运行某些东西来清除会话,或者会话过期限制设置得太小?

道德:请先尝试重现问题,以便准确缩小问题的范围。我建议使用Firebug + Firecookie来调试Firefox和一般的cookie问题,并建议使用Fiddler2(代理)来调试IE。

我认为,老实说,最好的方法是发布导致这种情况的代码。

Drupal使用PHP会话来执行此操作,该会话使用cookie。...是否有任何用户关闭过cookie?

导致此问题的原因很多,重定向到另一个域,清除会话(/ tmp cleanup?),但是通常,我会将类似的内容放到浏览器中。

询问他们是否仍然可以使用其他浏览器进行复制(尝试使用firefox)...检查其cookie安全设置等。