php - CodeIgniter session 数据不工作

标签 php codeigniter session

我在登录时创建了一个 session ,但它没有保存我存储在 session 中的变量,也没有将它们传送到其他页面:

Controller 代码:

    function CheckDatabase($password) //This function is only run when password validation is correct.//
{
    $username = $this->input->post('Username'); //Sets the username as a $username.//
    $result = $this->User_model->Login($username, $password);

    if($result)
    {
        $sess_array = array();
        foreach($result as $row)
        {
            $sess_array = array( //Makes an array of the data to be stored in the session.//
            'UserID' => $row->UserID,
            'Username' => $row->Username
            );

            $this->session->set_userdata('logged_in', $sess_array); //Sets $sess_array as the session.//
        }

        return TRUE;
   }

    else //Ran if the username or password aren't matched in the CIUsers database. Returns error message.//
    {
        $this->form_validation->set_message('CheckDatabase', 'Invalid login details.');
        return false;
    }
}

同一 Controller 上的索引功能(应该阻止用户返回登录屏幕但没有)

    function index() //Default function that is run when this controller is called.//
{

    if($this->session->userdata('logged_in'))
    {
        redirect('Home_controller');
    }

    else
    {
        $this->load->helper(array('form'));
        $this->load->view('Login_view');
    }

}

主页 View 上的代码(登录后定向到哪个浏览器)

<?php echo $UserID .": ".$Username; ?>

显示 session 数据时出现此错误:

Message: Undefined variable: Username

Filename: views/Home_view.php

Line Number: 9

最佳答案

要检索 session 变量,您必须这样做

 $username = $this->session->userdata['logged_in']['Username'];
 echo $username;

关于php - CodeIgniter session 数据不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33154619/

相关文章:

ruby-on-rails - Rails with Redis 和 Devise 不工作

Django登录测试session问题

php - 返回随机数但不是 2

php - 为 View 使用替代结构时出错

php - 取消设置 $this

php - 在 Codeigniter 3 中通过 Office365 帐户发送电子邮件 - 连接超时

php - 外部 js 和 css 未在 codeigniter 中加载

数据库中的 PHP session

PHP 和 C++ 发送/接收事件

php - 处理 mysqli 准备好的语句时获取的替代方法?