Если пользователь нажимает кнопку «Назад» своего браузера непосредственно после входа в мое веб-приложение Codeigniter, они возвращаются к форме входа в систему. Вместо этого я хочу, чтобы пользователь был направлен на главную страницу.Переадресовать пользователя Codeigniter при использовании кнопки возврата
Кроме того, когда пользователь выходит из системы, я хотел бы предотвратить доступ к странице учетной записи, но я не знаю, как это сделать.
Любые предложения?
Я приложил свою модель для входа ниже.
Контроллер:
class Account extends CI_Controller{
public function __construct()
{
parent::__construct();
$this->load->model('masterentry_model');
$this->load->model('account_model');
// Your own constructor code
}
public function index()
{
if($this->session->userdata('logged_in') != TRUE){//checking loged in
$this->load->view('signin');
}else{
$data['location'] = $this->masterentry_model->getLocation();
$data['activeUser'] = $this->masterentry_model->userActive();
$data['flag'] = "home";
$this->load->view('home', $data);
//redirect('account');
}
}
//login process
public function loginsum(){
$this->load->library('form_validation');
$this->form_validation->set_rules('password', 'password', 'required|callback_check_exists');
if($this->form_validation->run() == true){
if($this->session->userdata('logged_in') == TRUE)
{
//$path = get_redirect_path();
redirect('account');
}
}
else{
if($this->session->userdata('logged_in') != TRUE)
{
$this->load->view('signin');
}
else
{
redirect('account');
}
}
}
//check email and password with database correct or not
public function check_exists($password){
$email = $this->input->post('email');
$result = $this->account_model->logincheck($email, $password);
if($result == 0)
{
$this->form_validation->set_message('check_exists', 'Email (or) Password incorrect');
return false;
}
else
{
return true;
}
}
//logout process
public function logout(){
$session_array = array(
'email' => "",
'user_id' => "",
'logged_in' => FALSE
);
$this->session->unset_userdata($session_array);
$this->index();
}
}
Модель:
class Account_model extends CI_Model{
function __construct(){
parent::__construct();
}
public function logincheck($email, $password){
//echo "SELECT * FROM `account` WHERE email = '$email' AND password = '$password)'";
$query = $this->db->query("SELECT * FROM `account` WHERE email = '$email' AND password = '".md5($password)."'");
//checking row existes
if($query->num_rows() == 1){
$row = $query->row();
$session_array = array(
'email' => $row->email,//storing email in session
'user_id' => $row->id,//storing userid in session
'logged_in' => TRUE
);
$this->session->set_userdata($session_array);
return 1;
}else{
return 0;
}
}
}
Незначительные изменения грамматики, мы надеемся прояснить намерение. – inanutshellus