微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Yii2.0中session有效期设置原理

1、session设置方法

$session = Yii::$app->session;@H_404_4@//当session没有值 或 过期时间到 则重新付值@H_404_4@if(!isset($session['user']) || $session['user']['expire_time'] < time()){@H_404_4@$data = [@H_404_4@'title' => 'data', //数据@H_404_4@'expire_time' => time() + 10, //这里设置10秒过期@H_404_4@];@H_404_4@$session['user'] = $data;@H_404_4@}

var_dump($session['user']);

2、session其他操作:

yii2打开session@H_404_4@use yii\web\Session;

$session = Yii::$app->session;@H_404_4@// check if a session is already open@H_404_4@if ($session->isActive) ...@H_404_4@// open a session@H_404_4@$session->open();@H_404_4@// close a session@H_404_4@$session->close();@H_404_4@// destroys all data registered to a session.@H_404_4@$session->destroy();

设置session

$session = Yii::$app->session;@H_404_4@$session->set('user_id', '1234');@H_404_4@//OR@H_404_4@$session['user_id'] = '1234';@H_404_4@//OR@H_404_4@$_SESSION['user_id'] = '1234';

读取session

$session = Yii::$app->session;

$user_id = $session->get('user_id');@H_404_4@//OR@H_404_4@$user_id = $session['user_id'];@H_404_4@//OR@H_404_4@$user_id = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null;@H_404_4@销毁session@H_404_4@$session = Yii::$app->session;@H_404_4@$session->remove('user_id');@H_404_4@//OR@H_404_4@unset($session['user_id']);@H_404_4@//OR@H_404_4@unset($_SESSION['user_id']);

数组session的读取与设置

$session = Yii::$app->session;@H_404_4@$session['user'] = [@H_404_4@'id' => 1,@H_404_4@'username' => 'yiiuser',@H_404_4@];@H_404_4@echo $session['user']['id'];@H_404_4@echo $session['user']['username'];

$session['user.id'] = 1;@H_404_4@$session['user.username'] = 'yiiuser';

ps: @H_404_4@设置session过期时间不起作用,无效。解决办法:@H_404_4@Problem is in cookies expire time. When it timed out, user is logout. Solution, for changing cookies expire time is in configuration for session component set for cookies lifetime:

‘components’ => [@H_404_4@‘session’ => [@H_404_4@‘class’ => ‘yii\web\Session’,@H_404_4@‘cookieParams’ => [‘lifetime’ => 7 24 60 * 60]@H_404_4@],@H_404_4@]@H_404_4@When user login, cookies expire time in current example is after week.@H_404_4@问题在于cookie的过期时间,设置cookie的生命周期时间lifttime就可以了

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐