簡體   English   中英

Codeigniter-PHP會話有問題

[英]Codeigniter - PHP something wrong with Session

我正在網上沖浪,找到了官方頁面:

帶有添加自定義會話數據段落

https://www.codeigniter.com/user_guide/libraries/sessions.html

我嘗試實現該代碼以進行挖掘,但仍然無法正常工作:

public function login_validation(){
        $data = new stdClass();
        $this->load->database(); // load database
        $this->load->library('form_validation');
        $this->load->helper('url');
        $this->load->library('session');

        $this->form_validation->set_rules('email', 'email', 'required|trim|callback_validate_credentials');
        $this->form_validation->set_rules('password', 'password', 'required|trim', array(
            'required'      => 'Password field is empty'));

        $this->load->model("model_users");
        $email = $this->input->post('email');
        $user_id = $this->model_users->get_user_id($email);
        $user    = $this->model_users->get_user($user_id);

        if ($this->form_validation->run()){
            $newdata = array(
                   'username'  => 'johndoe',
                   'email'     => 'johndoe@some-site.com',
                   'logged_in' => TRUE
               );
            // $_SESSION['user_id']      = (bool)true;
            // $_SESSION['email']      = $this->input->post('email');
            // $_SESSION['logged_in']    = (bool)true;
            // $_SESSION['username']     = (string)$user->priv;
        $this->session->set_userdata($newdata);
        $this->members();
        } else{
            $this->login();
        }
    }

我在此行收到此錯誤- <?php echo $_SESSION['username']; ?> <?php echo $_SESSION['username']; ?>

A PHP Error was encountered

Severity: Notice

Message: Undefined index: username

Filename: views/catalog.php

Line Number: 19

Backtrace:

我沒有看到任何錯誤,而且我現在真的很着急,因為沒有任何反應。 很抱歉提出問題的方式不好。 如果您需要額外的代碼行,請說我將其粘貼在pastebin.com中

設置新會話

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

$this->session->set_userdata($newdata); # setting session data

檢索會話

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

echo $username;

視野中

echo $this->session->userdata('username');

注意:

如果要傳遞會話數據以查看, 可以將其與$data[]綁定,或者在view中可以直接調用它

由於PHP本機會話未在CI:2中實現,因此您不能在codeigniter 2中使用$ _SESSION,而可以使用

$this->session->set_userdata('key','data');
//to fetch this session you can do
$this->session->userdata('key');

但是由於某種原因,您需要實現PHP本機會話,因此可以將其添加為庫Check庫(此處)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM