如何访问php会​​话文件

时间:2014-01-28 12:02:32

标签: php session

我有一个启用了基于cookie的登录的Yii应用程序。

因此,每次用户连接到应用程序时,都会在服务器上创建会话文件 (/ var / lib / php5)与PHPSESSID相关。

其中一个Session变量是超时(timestamp)。

我想创建一个php脚本来访问所有这些Session文件,打开它们,检查超时,如果超时,则对数据库中的特定表进行一些更改。

第一个问题,从我的php脚本中我无法在/ var / lib / php5中打开会话文件。 权限被拒绝。(来自我的php脚本的AFAIK我尝试以Apache用户身份打开这些文件,虽然我需要成为超级用户,但是如何做到这一点......在运行中? - 无需更改文件权限)

第二个问题。 即使我尝试从我的PHP脚本打开特定会话ID的超全局$ _SESSION 我仍然收到许可被拒绝的消息。

$sSessId='la05bdm63rdmjevg4hfrcf17u6';
session_id($sSessId);
session_start();
print_r($_SESSION);

有关php脚本如何访问这些会话文件的任何建议? 很多thnx提前。

1 个答案:

答案 0 :(得分:1)

首先你不需要调用session_start()因为默认情况下它是true,要在config / main.php中禁用

'session' => array (
'autoStart' => false,// by default is true

),

在Yii中读取会话的最佳方法是使用类似于超级全局数组Yii::app()->session的内置函数$_SESSION

Yii::app()->session['var'] = 'value';
echo Yii::app()->session['var'];

取消设置会话变量

unset(Yii::app()->session['var']);

删除会话变量

Yii::app()->session->remove('var')

更改会话变量的路径

'session' => array (
'sessionName' => 'Site Access',
'cookieMode' => 'only',
'savePath' => '/path/to/new/directory',

),

希望这会有所帮助