我在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没有显示我写的会话变量....
为什么会这样......
答案 0 :(得分:0)
如果您还没有使用Cake内置AuthComponent,可能需要考虑使用。
您是否实际测试过$this->User->loginUser()
的返回值?
您可以在会话中保存其他任何内容吗?
看看您是否可以从this question获得任何提示。