gpt4 book ai didi

php - Codeigniter 中的 session 变量不起作用

转载 作者:技术小花猫 更新时间:2023-10-29 12:43:48 26 4
gpt4 key购买 nike

您好,我已经在 Codeigniter 中创建了一个 session ,我已经在我的模型中设置了 session 变量。但是当我通过 Controller 在我的 View 中调用 session 变量时设置 session 变量值后, session 变量值变为空。有帮助吗???

更新

这是我设置 session 变量的模型

function login ($username, $password)

{
$this->db->where('username' , $username);
$this->db->where('password', $password);

$query = $this->db->get('users');

if ($query->num_rows()>0)

{
foreach ($query->result() as $rows)
{
$data = array(

'user_name' => $rows->username,
'logged_in' => TRUE,
'validated' => true
);
}

$this->session->set_userdata($data);
//$user = $rows->username;
//$this->session->set_userdata('user_name', $user);

return true;
}

else

{
return false;
}

}

这是我重定向到 View 的 Controller

public function verification()

{
$username = $this->input->post('username');
$password = $this->input->post('password');


$result = $this->site_model->login($username, $password);


//$result = $this->session->set_userdata('validated');

if ($result)
{
//$this->admin();
//$this->session->set_userdata('login_state', TRUE);

redirect ('site/index');

}
else
{

redirect ('site/login');
//$this->load->view('login');
}
}

我在 construct(); 下的 Controller 中调用了 session_start();

这就是我在 View 中访问 session 变量的方式

<?php if ($this->session->userdata('user_name') != "") { ?>

.....

最佳答案

首先,在 CI 中,您不需要在任何地方使用 session_start()。 config/autoload.php 文件中只有自动加载 session 。

删除 session_start()。尝试使用闪存数据。 Flashdata 是临时 session ,主要用于您需要将用户重定向到另一个页面并显示一些成功或错误消息的情况。

  1. 设置闪存数据:$this->session->set_flashdata('item', 'value');

  2. 获取闪存数据:$this->session->flashdata('item');

这是文档链接 http://www.codeigniter.com/user_guide/libraries/sessions.html#flashdata

关于php - Codeigniter 中的 session 变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18458958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com