gpt4 book ai didi

php - 如何获取 session 数组数据 CodeIgniter

转载 作者:可可西里 更新时间:2023-11-01 00:41:28 24 4
gpt4 key购买 nike

如果我将 session 数据更改为数组(我是 CodeIgniter 的新手),我不太清楚为什么用户名没有出现在 View 页面上。我有 auth Controller 来进行登录过程:

function index() {
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'username', 'required|trim|xss_clean');
$this->form_validation->set_rules('password', 'password', 'required|trim|xss_clean');

if ($this->form_validation->run() == FALSE) {
$this->load->view('Login');
# code...
}
else {
$username = $this->input->post('username');
$password = $this->input->post('password');
$check = $this->M_login->check($username, $password);

// session data
if ($check->num_rows() == TRUE) {
foreach ($check->result() as $value) {
$sess_data['id'] = $value->id;
$sess_data['name'] = $value->name;
$sess_data['username'] = $value->username;
$sess_data['password'] = $value->password;
$sess_data['description'] = $value->description;
$this->session->set_userdata($sess_data);
}
redirect('Dashboard');
}
else {
$this->session->set_flashdata('result_login', '<br>Invalid username or password, try again.');
redirect('Login');
}

这是我的仪表板 Controller :

public function __construct() {
parent::__construct();
if(!$this->session->userdata('id')){
redirect('login');
}
}

public function index() {
// Dashboard view
$username = $this->session->userdata('username');

$data['username']=$username;

$this->load->view('Dashboard', $data);
}

function logout() {
$this->session->sess_destroy('id');
redirect('login');
}

使用上面的代码,我可以通过 echo $username 在我的仪表板 View 中获取用户名。但是当我像这样更改 session 数据时:

if ($check->num_rows() == TRUE) {
foreach ($check->result() as $value) {

// session data
$sess_data = array(
'id' => $value->id,
'username' => $value->username,
'password' => $value->password,
'name' => $value->name,
'description' => $value->description
);
$this->session->set_userdata('log',$sess_data);
}
}

Dashboard controller 变成了这样:

if(!$this->session->userdata('id')) {
$getdata= $this->session->userdata('log');

$data['username'] = $getdata['username'];
}
$this->load->view('Dashboard', $data);

然后用户名从 View 页面中消失了。我如何将用户名存储在 session 数组中并在 View 页面中调用它。请分享您更好的建议或您的经验。

谢谢。

最佳答案

在 session 中添加数据:-

$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);

$this->session->set_userdata($newdata);

从 session 中检索数据:-

$this->session->all_userdata()

检索单个数据:-

$session_id = $this->session->userdata('username');

关于php - 如何获取 session 数组数据 CodeIgniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35449191/

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