Session in Code Igniter


Session in Code Igniter

我想问这个问题,如果我们如何做一个会话代码点火器,特别是在登录和注销帐户。我想知道一步一步的代码点火器的MVC

在登录时,在set_userdata函数中执行查询后设置会话数据,并传递要设置的数据数组

$this->session->set_userdata('session data here');

在登出时,你必须调用unset_userdata函数并传递你必须在登录时设置的数组的数组。

$this->session->unset_userdata('session data here');

使用我的代码为例,你可以这样做,我有一个名为iris.php的控制器和一个名为script.php的模型。我使用虹膜来调用和使用脚本模型。

    class Iris extends CI_Controller {
function __construct(){
parent::__construct();
    $this->load->model('script');
    $this->load->model('alert');
}
public function index()
{ $this->load->view('index');
}
 public function login_in()
{
    $login = $this->script->check_login();
    if($login->num_rows() == 1){
      foreach ($login->result_array() as $row) {
        $newdata = array(
        'fullname'  => $row['fullname'],
        'email'     => $row['email'],
        'member_id' => $row['member_id'],
        'transtatus'=>$row['transtatus']
        );
        $this->session->set_userdata($newdata);
      }
      redirect('iris/user_home');
    }else
    {
        $data = array('alert'=>$this->alert->log_alert());
        $this->load->view('common/header');
        $this->load->view('login',$data);
        $this->load->view('common/footer');
    }
}`

i首先在构造函数下加载模型脚本模型,并在虹膜控制器的登录函数中调用脚本$login=$this->script->check_login();中的函数在script.php中,我们有以下代码:

    {public function check_login(){
        $email = $this->input->post('email');
        $password = $this->input->post('password');
          $query = "SELECT * FROM `iris_user`
      WHERE`email`=? AND`password`= ? ";
          $result = $this->db->query($query, array($email, $password));
          return $result;
      }

记住,你必须从application/config/autolload .php文件中加载会话类帮助器

 $autoload['libraries'] = array('database', 'session');

会话总是在自动加载后启动,但可能在创建注销功能时被销毁。还要注意,在添加会话数据变量以访问会话变量时,必须使用声明会话变量时使用的名称。例如,要访问全名,可以在代码

中这样做
echo $_SESSION['fullname'];

在控制器加载库会话中:

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

使用下面的语句创建会话:

$this->session->set_userdata("session_name",session_value);

For Session Unset:

$this->session->unset_userdata("session_name");