我是Codeigniter的初学者。我创建了带有会话的简单登录页面。我使用正确的登录详细信息登录。现在我显示视图页面。
我的问题是如何设置注销。如何从查看页面再次调用控制器方法?
我也创建了注销方法。
我的控制器页面:
//load database libray manually
$this->load->database();
$this->load->model('L_Model');
$this->load->helper('url');
$this->load->library('session');
//load Model
}
public function check_login(){
$data['error']="";
if($this->input->post('email') && $this->input->post('pass')){
$email=$this->input->post('email');
$pass=$this->input->post('pass');
$user_count=$this->L_Model->check_user($email,$pass);
if($user_count==0){
$data['error']="<h4 style='color:red;text-align:center'>Invalid user details</h4>";
}else{
$this->session->set_userdata('email', $email);
redirect('Login/dash');
}
}else{
$data['error']="<h4 style='color:red;text-align:center'>Enter required details</h4>";
}
$this->load->view('m-login',$data);
}
public function dash(){
if(!$this->session->userdata('email')){
$data['error']="<h4 style='color:red;text-align:center;'>Please login</h4>";
$this->load->view('m-login',$data);
}else{
$this->load->view('dashboard');
}
}
public function logout(){
$this->session->unset_userdata('email');
$this->load->view('m-login');
}
} ?> 我的视图页面:
<!DOCTYPE html>
<html lang="en">
<head>
<title>CSS Website Layout</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
margin: 0;
}
.header,.footer,.menu {
background-color: #f1f1f1;
padding: 15px;
text-align: center;
}
.menu{
margin-top:20px;
}
</style>
</head>
<body>
<div class="header">
<h3>Welcome to your dashboard...<?=$this->session->userdata('email');?>
</h3>
</div>
<div class="menu">
demo
</div>
</body>
</html>
这就是您要做的,只需路由到您的注销方法,例如
要重定向回登录页面,在清除所有会话数据后,请使用此选项将登录页面重定向回登录页面作为重定向(base_url('登录'((;
注销代码为
redirect(base_url(login/logout));
登录是控制器,注销是在编码点火器中清除会话的方法,例如$this->session->sess_destroy()
或session_destroy();
但在执行此操作之前,请确保您具有像$this->load->library('session');
这样的加载 Codigniter 会话库。要重定向回登录页面,在清除所有会话数据后,请使用此选项将登录页面重定向回登录页面作为重定向(base_url('登录'((;
注销代码为
public function logout () {
$this->load->library('session');
$this->session->sess_destroy();
redirect(base_url('login'));
}
在你的 html 中这样做
<div><a href="<?php echo base_url('login/logout');?>">Logout</a></div>
我希望这能帮助你引起我的注意