在哪里看网站是否丢失了用户会话?

突然几天前,我注意到,在我的网站上,当我完成一个地方的forms(POST),然后我做一个redirect来查看那个地方,用户会话会丢失。 如果我刷新页面,我再次连接。 它也发生在另一种forms+redirect。

这只发生在生产服务器上。 在分期(与生产相同的configuration)和本地工作正常。

我在生产中的堆栈是Apache,memcache(会话),PHP,Symfony1.4,MySQL。

任何想法,我应该在哪里看? Apache,什么? 内存caching?

谢谢!

编辑

  • 这不是suhosin,因为我没有启用扩展
  • 我只在POSTs和一个头redirect后发生

我发现了这个错误,而且与此无关。 下面的代码被打破了。 我刚刚评论过。 仍然不知道为什么,但至less该错误是出来的。 我将不得不问symfony的人。

// clear cache $cacheDriver = $this->getTable()->getAttribute(Doctrine::ATTR_RESULT_CACHE); $cacheDriver->deleteByPrefix('tour.'.$this->id); 

我猜两件事之一:

  1. session_start()缺失
  2. 您没有使用会话cookie,并且在执行header('Location', ...)时请求variables丢失了

我会在Net面板中使用Firebug和Persist选项来检查是否所有请求都携带了PHPSESSID cookie或请求variables。 假设它,我会检查是否在Location头的目标页面上缺lesssession_start()