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;
}
MODEL:
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;
}
}
}
}
我如何访问用户数据,如果帐户已登录并且是否为admin acc,我将使用此操作来运行if per view。
如果我100%正确的话,我想阅读关于如何使用会话的一些意见。
另外,我有一个问题,
此代码<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); ?>
阻止直接访问视图,阻止视图访问,但不会专门检查用户是否已登录。
我如何在会话中使用它。如果多余请告诉我,
答案 0 :(得分:0)
Codeigniter使用第二个参数将数据传递给视图:
$this->load->view('user/homepage');
不传递任何数据。
$this->load->view('user/homepage', $data);
会传入您可以使用的 $ data 变量。 (https://ellislab.com/codeigniter/user-guide/general/views.html)
另一点 - 我会考虑在成功登录后使用redirect()函数,而不是在登录方法中加载您想要的视图。使用URL Helper执行此操作(https://ellislab.com/codeigniter/user-guide/helpers/url_helper.html)。
希望有所帮助。