2015-06-08 2 views
3

Если пользователь нажимает кнопку «Назад» своего браузера непосредственно после входа в мое веб-приложение 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; 
    } 
    } 

} 
+0

Незначительные изменения грамматики, мы надеемся прояснить намерение. – inanutshellus

ответ

1

Включите эти заголовки в constructor function в controller, чтобы предотвратить кэширование предыдущей страницы

$this->output->set_header('Last-Modified:'.gmdate('D, d M Y H:i:s').'GMT'); 
$this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate'); 
$this->output->set_header('Cache-Control: post-check=0, pre-check=0',false); 
$this->output->set_header('Pragma: no-cache'); 
+0

Привет, после моего входа в систему мой URL-адрес будет выглядеть следующим образом (http: // localhost/barteradmin/account/logout) после того, как я вступил в систему и нажмите кнопку «Назад», означает, что мой url будет выглядеть следующим образом (http: // localhost/barteradmin/аккаунт/выход из системы), после чего мое приложение выходит из системы. Я хочу делать как приложение facebook. – Vijaykarthik

+0

вы пробовали этот код ?? – Saty

+0

Да, его не работает. Мой браузер возвращается после входа в систему. После выхода его работы. – Vijaykarthik

Смежные вопросы