2016-03-23 2 views
0

Как отключить функцию возврата, когда пользователь нажал кнопку выхода из системы? Это мой кодCodeIgniter session_destroy() logout back

function logout(){ 
     session_start(); 
     session_unset(); 
     session_destroy(); 
     redirect(base_url(),'refresh'); 
    } 

Но каждый раз, когда я нажимаю назад, это дает мне страницу «Подтвердите повторную отправку формы», а затем, когда я перезагрузить его, страница перед функцией выхода из системы будет отображаться

+0

Просто, чтобы убедиться, что это не глупая ошибка:. Если эта форма для входа в систему, это естественно, что повторное представление будет регистрировать Вас обратно в – Narf

+0

могли бы вы добавить свой вид здесь .. Вы можете просто 'unset userdata' в codeigniter. как '$ this-> session-> unset_userdata ($ your_array);' – santosh

ответ

0

Добавить это, чтобы предотвратить кэширование предыдущей страницы:

$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

серьезно ????? – santosh

+0

почему ?? Любое предложение @santosh ?? – Drudge

1

Я хотел бы добавить следующее к контроллерам я не хочу, чтобы люди доступ без входа в систему:

права после названия класса продолжается CI_Controller {

public function __construct(){ 
    parent::__construct(); 

    if (! $this->session->userdata('logged_in')) 
    { 
     $allowed = array(
      // All allowed function names for not logged in users (i keep it empty usually) 
     ); 
     if (! in_array($this->router->fetch_method(), $allowed)) 
     { 
      redirect(site_url('login/index')); 
     } 
    } 
} 

Так что в основном то, что это делает перед тем, как любая функция будет доступна в контроллере, она проверит, будет ли пользователь зарегистрирован, и если он/она не будет, он будет перенаправлен на страницу входа в систему. (Часть userdata 'logged_in' - это то, что я установил как userdata после входа пользователя).

0

В контроллере

__construct метод добавить эти

function __construct() 
{ 
    parent::__construct(); 
    ob_start(); # add this 
    $this->load->library('Session'); # add this 
} 

И В вашем методе

function logout(){ 
    $this->load->driver('cache'); # add 
    $this->session->sess_destroy(); # Change 
    $this->cache->clean(); # add 
    redirect('home'); # Your default controller name 
    ob_clean(); # add 
} 

В redirect вы должны установить свое имя контроллера по умолчанию.

Destroying a Session

+0

любое обновление по этому вопросу? –

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