在cakephp中读取会话变量时出错

时间:2009-08-04 09:03:00

标签: cakephp

我在Cakephp中使用Sessions。我有3个控制器。在用户控制器登录时,我在Session变量中写了用户ID。

但是当我尝试在另一个控制器中读取它时,我得到了Session变量的值.WHy so ???

编辑:

在我的用户控制器中

我正在编写以

登录的人的用户ID
   function login()
   {


    $this->Session->write('userId',$this->User->loginUser($this->data));
    $this->User->data=$this->data;

    if (!$this->User->validates())
        {
            $this->Flash('Please enter valid inputs','/main' );
            return; 
        }
    if($this->Session->read('userId')>0){

                    $this->Session->setFlash('Login Successful');
        $this->redirect('/main/home');
        break;

    }
    else{
        $this->flash('Username and password do not match.','/main');

    }

} 

在我的表单控制器中,我试图读取会话变量用户ID,如..,

  <?php
  class FormsController extends AppController 
  {

var $name = 'Forms';
var $helpers=array('Html','Ajax','Javascript','Form');
var $components = array( 'RequestHandler','Autocomplete');
var $uses=array('Form','User','Attribute','Result','Invite','Share','Choice');


 function index() {}


     function design() 
     {
            $userId=$this->Session->read('userId');echo $userId;
            $this->data['Form']['created_by']=$this->Session->read('userId');

            $userName=$this->Form->findUserName($this->data);
            $this->set('userName',$userName);
     }
}

但是这个用户ID没有显示我写的会话变量....

为什么会这样......

1 个答案:

答案 0 :(得分:0)

  1. 如果您还没有使用Cake内置AuthComponent,可能需要考虑使用。

  2. 您是否实际测试过$this->User->loginUser()的返回值?

  3. 您可以在会话中保存其他任何内容吗?

  4. 看看您是否可以从this question获得任何提示。