![](/img/trans.png)
[英]How to prevent user from accessing certain pages if not logged in in codeigniter
[英]How to prevent showing logged in user in member list?
我有按“ a”和“ m”分類的管理員列表和成員列表。 現在,我在不同選項卡中顯示管理員列表和成員列表。 現在的問題是,如果用戶在成員列表中並且已登錄,則其名稱不應顯示在成員列表中。
這是控制器:
public function view_customer(){
$data = json_decode(file_get_contents('php://input'));
$customers=$this->um->view_customers();
header("Content-Type: application/json; charset=UTF-8");
echo json_encode($customers);
}
這是模型:
public function view_customers(){
$this->db->select('reg_id,reg_name,email,user_type,pic_url,id,name,cover_image,restaurant_id');
$this->db->from('registration');
$this->db->where('user_type','m');
$this->db->join('rest_restaurant_master','registration.restaurant_id=rest_restaurant_master.id','inner');
$query=$this->db->get()->result_array();
return $query;
}
基本上,您需要一個既包含在表中又與用戶相關的變量。 我假設您有一個名為id
的會話變量,該會話變量名為user_id
。
添加到view_customers
:
$this->db->where_not_in('id', $this->session->user_id);
或(更輕松):
$this->db->where('id !=', $this->session->user_id);
這樣,您的數組將包含僅在m
中的用戶,而不是活動用戶。
設置會話時(登錄時)
$newdata = array(
'id' => 3, # id is database user recorded id
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
然后在所有方法中您都可以調用
$loggedUser = $this->session->id; # or $this->session->userdata('id');
$this->db->where_not_in('id', $loggedUser);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.