Php Yii:$\会话未定义,但Yii::app()->;会话工作
我在我的应用程序中启用了如下会话(在Php Yii:$\会话未定义,但Yii::app()->;会话工作,php,session,yii,comet,Php,Session,Yii,Comet,我在我的应用程序中启用了如下会话(在config.php,components部分): 在UserIdentity中,我尝试这样做: $_SESSION['userid'] = $model->id; 这意味着我将在登录用户后设置新会话。但是当我尝试访问$\u会话['userid']或仅访问$\u会话-进行阅读时,我会遇到以下异常: Undefined variable: _SESSION 这是我尝试访问此会话阵列的方式: echo '<pre>'; die(var_dum
config.php
,components
部分):
在UserIdentity
中,我尝试这样做:
$_SESSION['userid'] = $model->id;
这意味着我将在登录用户后设置新会话。但是当我尝试访问$\u会话['userid']
或仅访问$\u会话
-进行阅读时,我会遇到以下异常:
Undefined variable: _SESSION
这是我尝试访问此会话阵列的方式:
echo '<pre>';
die(var_dump($_SESSION, $_SESSION['userid']));
echo';
die(var_dump($_SESSION,$_SESSION['userid'));
关于这一点我没有任何线索,所以我对这个问题的两个简单问题是:
autoStart=>true
时才会发生这种情况PS我需要这个来与Yii框架集成CometChat。您可以使用
@session\u start()代码>。如果it会话已经启动,这将抑制警告,并设置如下变量:Yii::app()->session['userid']=$model->id使用Yii::app()。
此外,您还可以在会话启动后像这样设置登录用户
//After successfully authentication, create session
Yii::app()->session;
Yii::app()->session['userid'] = $user->id;
//Now you can get anywhere like this -
echo Yii::app()->session['userid'];
以上是yii中登录用户的默认变量。要在会话中创建新的用户条目,您可以在您的UserIdentity.php中使用此Yii::app()->session['variablename']
像这样尝试
在配置中,会话自动启动是否为真..?是。当我放置session\u start()
时,我根本没有得到$\u session['userid']
。但是如果我在尝试设置会话时设置了session\u start()
,我会遇到以下异常:会话已经启动-忽略session\u start()
@NaincyGupta-默认情况下,它是true
。面临相同的问题。告诉我是否找到解决方案。我必须访问Yii项目范围之外的会话变量。这不起作用。@Karadža会话变量在特定项目范围内工作,而不是在外部。登录后,在项目范围内外的两个位置上打印echo Yii::app()->user->id
,并给出响应,输出是什么?我必须访问Yii项目范围外的会话变量。这行不通。
$this->_id=$model->id;
$this->setState('title', $model->username);
$this->setState('role', $model->role);
//After successfully authentication, create session
Yii::app()->session;
Yii::app()->session['userid'] = $user->id;
//Now you can get anywhere like this -
echo Yii::app()->session['userid'];