簡體   English   中英

視圖中的Codeigniter訪問會話

[英]Codeigniter access session in view

function login(){
    $data = array('username' => $_POST['username'], 'password' => $_POST['password']);
    $this->form_validation->set_rules('username', 'Username', 'required|callback_username_check');
    $this->form_validation->set_rules('password', 'Password', 'required');

    if($this->form_validation->run() == FALSE){
        $this->load->view('Login');
    } else {
        $result = $this->LoginModel->account_check($data);
        if($result){
            if($result['status'] = 'admin'){
                $isLoggedin = array('user_type' => 'administrator' ,'admin_name' => $result['username'] , 'is_loggedin' => TRUE);
                $this->session->set_userdata($isLoggedin);
                $this->load->view('admin/homepage'); 
            } else if($result['status'] = 'user'){
                $isLoggedin = array( 'user_name' => $row['username'] , 'user_type' => 'user' ,  'is_loggedin' => TRUE);
                $this->session->set_user($isLoggedin); 
                $this->load->view('user/homepage'); 
            } 
        }
    }
}

function username_check($username){
    $result = $this->LoginModel->username_check($username);
    if($result != TRUE){
        $this->form_validation->set_message('username_check' , 'Username does not exist');
        return FALSE; 
    } else return TRUE;
}

模型:

function username_check($username){
    $query = $this->db->get_where( 'admin' , array('username' => $username))->result_array();
    if(!empty($query)){
        return TRUE;
    }else{
        $query = $this->db->get_where( 'user_mst', array('username' => $username))->result_array();
        if(!empty($query)){
            return TRUE;
        }else return FALSE;
    }
}

function account_check($data){
    $query = $this->db->get_where( 'admin' , array( 'username' => $data['username'] , 'password' => $data['password'] ))->result_array();
    if(!empty($query)){
        foreach($query as $row){
            $result['status'] = 'admin';
            $result['username'] = $row['username'];
            $result['password'] = $row['password'];
            return $result; 
        }
    } else{
        $query = $this->db->get_where( 'user_mst' , array( 'username' => $data['username'] , 'password' => $data['password'] ))->result_array();
        if(!empty($query)){
            foreach($query as $row){
                $result['status'] = 'user';
                $result['username'] = $row['username'];
                $result['password'] = $row['password'];
                return $result; 
            }
        }
    }
}

我如何訪問用戶數據,如果帳戶已登錄並且是管理員帳戶,則我將使用它來按視圖運行if。

如果我100%正確,我想閱讀一些有關im如何使用會話的意見。

另外,我有一個問題

這段代碼<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); ?> <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); ?>

阻止直接訪問視圖,阻止視圖訪問,但不專門檢查用戶是否已登錄。

我如何在會議中利用這一點。 如果多余,請告訴我,

Codeigniter使用第二個參數將數據傳遞到視圖:

$this->load->view('user/homepage');

不傳遞任何數據。

$this->load->view('user/homepage', $data);

將傳入您可以使用的$ data變量。 https://ellislab.com/codeigniter/user-guide/general/views.html

另一點-我考慮在成功登錄后使用redirect()函數,而不是在登錄方法中加載所需的視圖。 使用URL幫助程序來執行此操作( https://ellislab.com/codeigniter/user-guide/helpers/url_helper.html )。

希望能有所幫助。

暫無
暫無

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

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