cakephp Session->在linux中编写问题

时间:2009-07-14 10:09:34

标签: cakephp

我遇到了cakephp的Session-> write方法的问题。

如果我设置一个像$ _SESSION ['..']这样的值,我就能读回来。但是,如果我使用write方法,它就无法正常工作。

我的问题与此处相同:http://www.nabble.com/Session-problem-td16684956.html

相同的代码在Windows中工作,但在我转移到linux后它无法正常工作。

任何许可问题都是原因吗? (但我已经完全获得了蛋糕应用程序目录的rw权限。)

代码示例:在链接中:http://www.nabble.com/Session-problem-td16684956.html

  • 配置:: write('Session.save','php');
  • 配置::写('Session.cookie','CAKEPHP');
  • Configure :: write('Session.start',true);
  • Configure :: write('Session.checkAgent',false);
  • 配置:: write('Security.level','medium');

蛋糕版:1.2.3.8166

3 个答案:

答案 0 :(得分:2)

确保不是你的一些步骤:

  • 清除/ app / tmp
  • 中的缓存
  • 检查并重新检查您的/ app / tmp是否是递归世界可写的(这意味着所有文件夹中的drwxrwxrwx)
  • 使用Firebug检查您的会话Cookie,可能出现了问题

最后但并非最不重要的是,尝试将session persistence移动到您的数据库(请参阅:Session.save),只是为了测试那种方式,你永远不知道你会发现什么。

希望如果你尝试所有这些,你会找到一些东西。

答案 1 :(得分:0)

您还应该尝试使用Cache :: read和Cache :: write

if (($session = Cache::read('session')) === false) 
{
   $session = 'some values';
   Cache::write('session', $session);
} 

首先,它将尝试初始化Cache :: read。如果返回false,则为Cache :: write 将参与将值存储在会话中。

答案 2 :(得分:-1)

Prabu,

虽然我怀疑Configure :: write()调用有时会正确设置会话信息(至少它看起来就像可能工作),Cake约定(又名CakeWay)是使用Session助手。我相信它默认包含在所有Cake控制器中;如果没有,您可以随时声明您的控制器:

class UsersController extends AppController {
 ...
 var $helpers = array( 'Session', ... )
 ...
}

然后,当您想要向会话写信息时,只需致电:

$this->Session->write( 'checkAgent', false );

要回读值,请使用:

$this->Session->read( 'checkAgent');

有关会话助手的更多信息,请查看CakeBook @ http://book.cakephp.org/view/484/Session