2015-05-01 8 views
0

Если я нажму ссылку «Выход из системы», она будет перенаправлена ​​на функцию «выхода», которая приведет к уничтожению сеанса входа в систему. После этого я снова вошел в систему, указав мне на функцию «продукты». Но если я нажму кнопку «Назад», он направит меня к функции «выход из системы» и разрушит сеанс входа в систему, не щелкая ссылку выхода.Запрет на предыдущую страницу

выход из системы-> функции продукта-> назад к выходу, нажав кнопку «Назад» -> сеанс входа в систему уничтожен.

 function logout(){ 

     $array_items = array('is_logged_in' => FALSE); 

     $this->session->unset_userdata($array_items); 

     $this->products(); 
     } 

Как я могу предотвратить возврат страницы к «выходу»? если бы это было возможно, я хотел бы перезагрузить текущую страницу, а не просто предотвратить возврат страницы.

Благодарим вас за помощь и делитесь знаниями. Извините за мое плохое объяснение

+0

Этот ответ может помочь? http://stackoverflow.com/a/12325906/2568469 – Hatef

ответ

1

Вы можете использовать redirect('controller/products'); вместо $this->products(); в конце вашей функции после того, как пользователь нажал функцию выхода из системы URL, в других функциях, вам нужно проверить, если пользователь уже вошли в системе или не.

В вашем случае ваш url будет /logout, после перенаправления ваш url будет /products.

Таким образом, когда пользователь щелкает назад, вы вернетесь на текущую страницу, а не на страницу выхода.

0

Если у вас есть контроллер администратора или что-то подобное расширение CI_CONTROLLER для ваших типов пользователей, я просто выбросить это в расширенный файл контроллера:

function __construct() { 
    parent::__construct(); 
    //check login, redirect if logged in or logging out 
    $this->no_cache(); //runs if not logging out or logged in 
} 

protected function no_cache(){ 
    header('Cache-Control: no-store, no-cache, must-revalidate'); 
    header('Cache-Control: post-check=0, pre-check=0',false); 
    header('Pragma: no-cache'); 
} 
Смежные вопросы