簡體   English   中英

無法訪問所有 session 數據

[英]Unable to access all session data

我無法在視圖中訪問 session 數據,在下面的代碼中我設置了session userdata用戶數據我可以訪問First namelast name ,但無法顯示nationalitysalutation

請檢查此代碼

控制器:

public function login_candidate()
{
    $data['error'] ="Invalid Username or Password";

    if($this->input->post())
    {
        $loginArray = array('candidate_email'=>$this->input->post('candidate_email'), 'candidate_password'=>md5($this->input->post('candidate_password')));

        $result = $this->Candidate_model->login_candidate($loginArray);

        if(count($result) > 0  AND is_object($result)){

            $session_data =array(
                'id'            ->$where['candidate_id'],
                'salutation'    ->$result->salutation,
                'candidate_first_name'  ->$result->candidate_first_name,
                'candidate_last_name'   ->$result->candidate_last_name,
                'nationaity'    ->$result->nationaity,

            );
            $this->session->set_userdata($session_data);
            redirect('Home');
        }else{
            $this->load->view('frontend/header');
            $this->load->view('candidate/candidate_login',$data);
            $this->load->view('frontend/footer');
        }
    }
    else{
        $this->load->view('frontend/header');
        $this->load->view('candidate/candidate_login');
        $this->load->view('frontend/footer');
    }

}

看法:

<div class="col-md-8">
    <div class="d-flex align-items-center">
        <h2 class="font-weight-bold m-0">
            <?php echo $this->session->userdata('salutation') ?>
            <?php echo $this->session->userdata('candidate_first_name') ?>
            <?php echo $this->session->userdata('candidate_last_name') ?>
        </h2>
        <address class="m-0 pt-2 pl-0 pl-md-4 font-weight-light text-secondary">
            <i class="fa fa-map-marker"></i>
            <?php echo $this->session->userdata('nationality') ?>
        </address>
    </div>
    <p class="h5 text-primary mt-2 d-block font-weight-light">
        Full-Stack Programmer
    </p>
    <p class="lead mt-4">All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet.</p>

    <section class="d-flex mt-5">
        <button class="btn btn-light bg-transparent mr-3 mb-3">
            <i class="fa fa-comments"></i>
            Private Message
        </button>
        <button class="btn btn-light bg-transparent mr-3 mb-3">
            <i class="fa fa-warning"></i>
            Report User
        </button>
        <button class="btn btn-primary mb-3">
            <i class="fa fa-check"></i>
            Hire Me
        </button>
    </section>

</div>

在這里它不顯示任何稱呼和國籍,但同時顯示名字和姓氏

如何定義array 按照文檔https://www.php.net/manual/en/language.types.array.php 您正在使用->而不是=>

此外,您沒有按名稱$where定義 object 。 而不是 $where 使用$result->candidate_id

代替:

$session_data = array(
                    'id'->$where['candidate_id'],
                    'salutation'->$result->salutation,
                    'candidate_first_name'->$result->candidate_first_name,
                    'candidate_last_name'->$result->candidate_last_name,
                    'nationaity'->$result->nationaity,

                );

和:

$session_data =array(
                    'id'=>$result->candidate_id,
                    'salutation'=>$result->salutation,
                    'candidate_first_name'=>$result->candidate_first_name,
                    'candidate_last_name'=>$result->candidate_last_name,
                    'nationaity'=>$result->nationaity,

                );

我已經更新代碼如下控制器

if(count($result) > 0){



                $this->session->set_userdata('salutation', $result[0]->salutation);
                $this->session->set_userdata('candidate_first_name', $result[0]->candidate_first_name);
                $this->session->set_userdata('candidate_last_name', $result[0]->candidate_last_name);
                $this->session->set_userdata('nationaity', $result[0]->nationaity);
                $this->session->set_userdata('candidate_email', $result[0]->candidate_email);
                $this->session->set_userdata('candidate_phone', $result[0]->candidate_phone);
                $this->session->set_userdata('candidate_job_title', $result[0]->candidate_job_title);

                $session_data = $this->session->all_userdata(); 

                redirect('Home');
            }

並在視圖中顯示數據

<?php echo $_SESSION['candidate_first_name'];?>

通過更改變量名稱對所有人都一樣

您將獲得使用 userdata 設置的所有 session 密鑰

$allSession = $this->session->userdata();
print_r($allSession);

暫無
暫無

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

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