2009-07-14 62 views
0

我的cakephp的Session-> write方法有问题。cakephp Session->在linux中写入问题

如果我设置了一个像$ _SESSION ['..']的值,我可以读回它。但是,如果我使用写入方法,它不起作用。

我的问题是相同的,如下:http://www.nabble.com/Session-problem-td16684956.html

相同的代码在Windows中工作,但它不工作后,我搬到了Linux操作系统。

任何权限问题将是原因? (但我已经完全授予rw的权限,用于蛋糕应用程序目录)。

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

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

蛋糕版本:1.2.3.8166

+0

代码示例和会话配置将很高兴看到.. CakePHP版本。 – 2009-07-14 10:35:43

+0

代码示例:与链接相同:http://www.nabble.com/Session-problem-td16684956.html 配置:: write('Session.save','php'); Configure :: write('Session.cookie','CAKEPHP'); Configure :: write('Session.start',true); 配置:: write('Session.checkAgent',false); 配置:: write('Security.level','medium'); Cake版本:1.2.3.8166 – Prabu 2009-07-14 10:57:59

回答

2

一些步骤,以确保它不是你:

  • 清楚你的/应用/ tmp目录
  • 检查缓存并重新检查你的/应用/ tmp是世界可写的递归(这意味着drwxrwxrwx里面的所有文件夹)
  • 使用Firebug来检查你的会话cookie,也许出了什么问题

最后但并非最不重要,尝试移动你的session persistence到数据库(参见:Session.save),只是为了测试从来没有的东西出来呀,你知道你会发现什么。

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

-1

Prabu,

虽然我怀疑配置:: write()调用有时会设置正确的会话信息(至少它看起来力量工作),蛋糕约定(又名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

0

你笑uld也尝试使用Cache :: read和Cache :: write

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

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