[英]Session is lost on change of the view PHP / CodeIgniter
我正在开发一个应用程序,并且正在使用会话变量来标识登录的用户,在我从索引更改视图之前,所有方法都可以正常工作。 这是我的登录控制器
$this->session->set_userdata('id', $obj[0]->ID);
header('Location: mydomain.com/landing');
实际上,我对此没有问题
echo $this->session->userdata('id');
它返回存储在会话上的先前信息。
我在autoload.php文件中加载了会话librery
$autoload['libraries'] = array('database', 'session');
当我尝试加载着陆视图时,存在一个验证以了解记录了谁
<?php defined('BASEPATH') OR exit('No direct script access allowed');
if( !$this->session->has_userdata('id') ){
header('Location: midominio.com');
}
else{
?>
<html></html>
<?php
}
?>
每次它将我重定向到索引时,如果我打印$this->session
它将返回
object(CI_Session)#16 (4) {
["userdata"]=>
&array(1) {
["__ci_last_regenerate"]=>
int(1537469720)
}
["_driver":protected]=>
string(5) "files"
["_config":protected]=>
&array(9) {
["cookie_lifetime"]=>
int(7200)
["cookie_name"]=>
string(10) "ci_session"
["cookie_path"]=>
string(1) "/"
["cookie_domain"]=>
string(29) "mydomain.com"
["cookie_secure"]=>
bool(false)
["expiration"]=>
int(7200)
["match_ip"]=>
bool(false)
["save_path"]=>
string(34) "/opt/alt/php70/var/lib/php/session"
["_sid_regexp"]=>
string(12) "[0-9a-v]{32}"
}
["_sid_regexp":protected]=>
string(12) "[0-9a-v]{32}"
}
未设置登录ID。 怎么了? 我正在使用PHP7和CI 3x
请在配置文件中设置以下变量。
$config['sess_cookie_name'] = 'ci_session';
$config['sess_save_path'] = 'ci_sessions';
如果ci_sessions表不存在,请在下面的表中创建:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(45) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.