web-dev-qa-db-ja.com

Codeigniterでセッションが設定されているかどうかを確認する方法は?

コアPHPでセッションを作成する方法を知っていますが、codeigniterでこれを行う方法は理解していますが、セッションが設定されているかどうかを確認する方法を理解できません。私はビューでこれを確認しようとしましたが、それは常に私にメッセージを与えますPlease Login

セッションが設定されているかどうかを確認する方法を教えてください

コントローラ

if ($user_type=='Student')
{
  if ($LoginData=   $this->loginmodel->studentLogin($username,$password))
  {
    foreach($LoginData as $UserId)
    {
      $currentId= $UserId->StudentId;
    }
    //[[session]]

    $data['students_data']=         $this->loginmodel->student_profile($currentId);

    $this->session->userdata('$data');

    $this->load->view('students',$data);
  }
  else
  { 
  //$data['message']= array('Invalid Username or Password');
    $this->load->view('Login');
    echo "Invalid Username or Password";
  }
}
elseif ($user_type=="Faculty")
{
  if($data['faculty_data']=$this->loginmodel->faculty_admin($username, $password))
  {
    $this->session->userdata('$data');

    $this->load->view('faculty');
  }
  else
  {
    $this->load->view('Login');
    echo "Invalid Username or Password";
  }
}

[〜#〜]ビュー[〜#〜]

<?php 

if (!$this->session->userdata('$data'))
{
    echo "Please Login";
}
else
{

}

?>

<!DOCTYPE
6
user3480644

セッションの作成:

$newdata = array(
               'username'  => 'johndoe',
               'email'     => '[email protected]',
               'logged_in' => TRUE
           );

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

または

  $this->session->set_userdata('some_name', 'some_value');

ただし、その前に、セッションライブラリが含まれていることを確認してください。

$this->load->library('session');

セッションデータを取得:

if($this->session->userdata('whatever_session_name_is')){
     // do something when exist
}else{
    // do something when doesn't exist
}
15
Sujit
 if ($this->session->userdata('variable') !== FALSE) {
  echo 'Variable is set';
} else {
  echo 'Variable is not set';
}  

詳細

デモコード

6
ravi patel

Has_userdataの使用

    if ($this->session->has_userdata('username')) {

        return TRUE;       

    } else {

        return FALSE;     

    }
0
antelove