登录控制器:
class Login extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library('session');
$this->load->library('form_validation');
$this->load->model('login_model');
}
public function index() {
$this->form_validation->set_rules('username', 'UserName', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if ($this->form_validation->run() == FALSE) {
$this->load->view('admin/login');
} else {
$result = $this->login_model->select_login($_POST); //check username and password
if ($result) {
$user = array(
'id' => $result['id'],
'username' => $result['username'],
'password' => $result['password']
);
$this->session->set_userdata($user);
redirect('admin/Dashboard');
} else {
$data['msg'] = 'Invalid UserName and Password';
$this->load->view('admin/login', $data);
}
}
}
}
信息中心控制器:
class Dashboard extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library('session');
}
public function index() {
$session_id = $this->session->userdata('id');
if (!empty($session_id)) {
$data = array(
'page_title' => 'Dashboard',
'page_name' => 'dashboard/dashboard',
'admin_username' => $this->session->userdata('username')
);
$this->load->view('admin/template', $data);
} else {
redirect('admin/Login');
}
}
}
信息中心视图
<html>
<body>
<h1>Helllo Admin</h1>
</body>
</html>
问题
如果我已经登录,如何重定向我的信息中心?
答案 0 :(得分:0)
什么是管理员&#34;重定向(&#39; admin / Dashboard&#39;);&#34;。您是否对路径文件中的url进行了任何更改?
答案 1 :(得分:0)
当你这样做时
if ($result) {
$user = array(
'id' => $result['id'],
'username' => $result['username'],
'password' => $result['password']
);
$this->session->set_userdata($user);
redirect('admin/Dashboard');
您正在会话Cookie中设置密码。您真正需要做的就是设置用户名。 您还应该在Login function index()
中执行类似的操作 if(result){
$user = array(
'name' => $result['username]',
'is_logged_in' => TRUE //add this to your session data
);
$this->session->set_userdata($user);
}
然后在您使用的任何控制器中创建一个方法
public function is_logged_in()
{
$is_logged_in = $this->session->userdata('is_logged_in');
if (!isset($is_logged_in) || $is_logged_in != true)
{
redirect("admin/Login");
}
}
当您在仪表板中时,可以使用$ this-&gt; is_logged_in();确保没有其他人进入您的仪表板或表格。在表格的顶部使用它来表单或只是进入仪表板 然后在你的网页上使用这样的东西
if($this->session->userdata('username') == true){
echo "Hello " . $this->session->userdata('username'). nbs(3), anchor("admin/Dashboard", " Go To Dashboard "); //this is all you need to get to your Dashboard if you are logged in.
}else {
echo " "; //doesnt show up if not logged in
}?>
它充当您网页上的链接,仅在您登录时显示。在所有Dashboard控制器方法的顶部添加$ is_logged_in();