将不保存CodeIgniter会话

sycxhyv7  于 2022-12-07  发布在  其他
关注(0)|答案(6)|浏览(141)

Maven、
我的会话有一点问题。我想将登录数据保存到会话中,如下所示:

检查登录控制器

$user = $this->user_model->user($email, $password);
$user["logged_in"] = TRUE;
var_dump($this->session->set_userdata($user)); // return NULL? is this correct?
var_dump($this->session->all_userdata()); //return the correct data

现在会话已保存到重定向。

其他控制器

var_dump($this->session->all_userdata()); // return session_id,… and a empty user_data array

我想我有同样的问题与购物车类。
有人能帮忙吗?

w6lpcovy

w6lpcovy1#

我不知道为什么,但我想我的故事会帮助那些面临同样问题的人。我的问题只是因为我忘记了降级我的Wamp PHP版本,它的php 7.1。看起来我的CI不支持php 7.1或更高。所以只要点击几下降级我的php,我的问题解决了

shyt4zoc

shyt4zoc2#

我在主index.php文件中添加了session_start(),之后就非常好用了。

vof42yt1

vof42yt13#

试试这个..

$user = $this->user_model->user($email, $password);
$user["logged_in"] = TRUE;
$this->session->set_userdata('user',$user);  //set session of users with a name user.

要获取会话值,您可以执行以下操作..

print_r($this->session->userdata('user')); // prints the user session array..

read more关于配置项中的会话

rjzwgtxy

rjzwgtxy4#

set_userdata()函数没有返回值,因此在var_dump()上显示null是正确的。
为了将自定义数据保存到用户会话,您应该检查手册here
它接受的参数必须是数组。

gcxthw6b

gcxthw6b5#

hmm尝试添加到ci->session,然后获取数据
//将CodeIgniter对象指派给变数

function __construct() {
    parent::__construct ();                     
    $this->ci = & get_instance ();
        }

//添加数据到ci会话

function test(){
     $this->ci->session->set_userdata($user)
}

在另一个控制器中,将CodeIgniter对象分配给变量

function __construct() {
    parent::__construct ();                     
    $this->ci = & get_instance ();
        }

并获取ci用户数据

$this->ci->session->all_userdata()
9rygscc1

9rygscc16#

当我想在运行PHP 7.3的服务器上重新运行以前使用CI 3.0.6构建的旧网站时,遇到了类似的问题。
我在一个控制器中设置了会话。

$this->session->set_userdata('logged_in', TRUE);

然后,当在数据库的会话表中存储新记录时,在此之后访问的其它控制器不能检索该信息。

empty($_SESSION['logged_in']); // true
empty($this->session->logged_in); // true

对我有效的解决方案如下。
1.为配置项会话表中的id列设置更大的大小。例如,我们的会话表名称为ci_sessions

ALTER TABLE ci_sessions CHANGE id id varchar(128) NOT NULL;

1.将当前CI system目录替换为较新的版本。在我的示例中,它可以与CI 3.1.10中的system目录一起使用。
总之,需要更新的CI版本才能与更新的PHP(7.1+)很好地交互。对于存储的会话记录,它有一个更长的id值。与其降级您的PHP版本,不如升级CI版本。

相关问题