2012-02-28 30 views
3

我使用cakephp 2.0開發網站。網站將只包含2種類型的用戶。管理員和用戶(客戶)。現在我需要設置會話時間爲客戶10分鐘和管理員1小時。可能嗎 ?。我core.php文件文件中包含類似的行,CAKEPHP 2.0中管理員和用戶的不同會話超時。可能嗎?

Configure::write('Session', array(
    'defaults'  => 'php', 
    'cookie'  => 'xyz', 
    'timeout'  => 10, 
    'checkAgent' => false, 
)); 

回答

3

這是比較正確的,你做的AppController這種情況下,而不是改變你的core.php中這個幅度。您可以僅此:

Configure::write('Session.timeout', 60); 

如果你正在使用訪問控制列表,驗證用戶是否是用他自己的ACL方法,而不是strripos管理。

+0

是的,我先試過這種方法。但我無法從應用程序控制器 – AnNaMaLaI 2012-02-28 12:04:18

+0

@ Cakephp.Saint檢查[此代碼](http://pastebin.com/UngCkQCj)覆蓋會話超時時間,並嘗試在AppController的'beforeFilter()'方法中使用。您會看到該值已更改。 – 2012-02-28 12:21:52

+0

是的,我在同一個應用在beforeFilter只有..它不工作:( – AnNaMaLaI 2012-02-28 12:23:10

3

添加以下行core.php中的文件。對於速戰速決

如果(strripos($ _ SERVER [ 'REDIRECT_URL'], 「管理/」)) {
     配置::寫( '會話',陣列(
      '缺省'=> 'PHP',
      '的Cookie'=> 'XYZ',
      '超時'=> 60,
     'checkAgent'=> false,
));
}
別的
{
     配置::寫入( '會話',陣列(
          '缺省'=> 'PHP',
        '的Cookie' =>'xyz',
         'timeout'=> 10,
     'checkAgent'=> false,
         ));
}