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

标签 php html codeigniter

您好,我已经在 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/

相关文章:

生成 v4 UUID 的 PHP 函数

php - WordPress 后端显示具有特定评论数的帖子

php - Piwik中特定事件 Action 的查询计数

html - CSS 或图像做一个 5sided looking div

php - CodeIgniter:特定功能应该放在哪里?

php - 如何从 codeigniter 调用两个或多个表并发送或加载以查看

PHP session_start() 与 error_reporting() 冲突?

html - Internet Explorer 8 中隐藏的顶部 TD 边框

javascript - 检查文本框中输入的数字的长度

php - CSS不想从另一个 Controller 上传