2016-11-17 9 views
0

私はコアphpウェブサイトに統合されたcodeigniterウェブサイトに取り組んでいます。問題は、ログアウトセッションが破棄されたりアンセットされたりしていない場合です。ユーザーが戻るボタンをクリックすると、セッションが既に実行されているため、内部ページに戻ることができます。ログアウト時にセッションが破壊されない?

私は既にcorephpを使ってセッションをアンセットして破壊しようとしましたが、運がないので、何かお勧めします。

これは私のログアウトコード

 function logout() 
    { 
    session_start(); 

    $this->session->set_userdata('user_id',''); 
    $this->session->set_userdata('user_name',''); 
    $this->session->set_userdata('business_id',''); 
    $this->session->set_userdata('email',''); 
    $this->session->set_userdata('user_type',''); 
    $this->session->set_userdata('activation_status',''); 
    unset($_SESSION); 
    $this->session->sess_destroy(); 
     session_destroy(); 
    header('location:'.base_url().'Login'); 


    } 

編集です:それは

function logout(){ 
    $this->session->sess_destroy(); 
    redirect('/'); 
} 

のように単純である必要がありCodeIgniterのセッションライブラリを使用して、民間のブラウザではなく、通常の1

+1

を試してみてください'$ this-> session'を印刷してみてください。何が表示されますか? –

+0

私はcodeigniterのセッションを破壊する正確な関数が何であるのか分かりませんが、これは大丈夫だと私は思う: - 'function logout(){ $ this-> session-> sess_destroy(); session_destroy();header( 'location:'。base_url()。 'ログイン'); } ' –

+1

' $ this-> session-> sess_destroy();だけが必要です。残りのすべてをコメントアウトして動作するかどうかを確認するには、 'session_start()'は必要ありません。 – Blinkydamo

答えて

0

上で動作しますこのコントローラにセッションライブラリをロードする(またはオートロードする)ことを確認してください

$this->load->library('session'); 

代わりにあなたのセッションで空白のユーザデータを設定する。また、あなたはこのようなあなたのセッションでは、個々の項目の設定を解除することができ

$this->session->unset_userdata('user_id'); 
+0

これも動作していませんでした –

0

`解除($ _ SESSION)`前にこの

$array = ('user_id', 'user_name', 'business_id', 'email', 'user_type', 'activation_status'); 
    $this->session->unset_userdata($array); 
+0

は動作しませんでした。私はそれを適用したが動作していない理由をメインコアPHPサイトから取得しています –

+0

$ this-> sessionオブジェクトを出力してチェックする必要があります。リダイレクトページで別のセッションを作成している可能性があります。 –

+0

それは通知を与える未定義の変数:_SESSION、しかし、前のページに行くなら、データはまだセッションに表示されます –

2
Try something like this 

$data = array(
'user_id' => '', 
'user_name' => '', 
'business_id' => '', 
'email' => '', 
'user_type' => '', 
'activation_status' => '',  
); 

$this->session->set_userdata('my_session',$data); 

To Destroy Session 

$this->session->sess_destroy('my_session'); 
+0

ありがとう、それは働いた:) – Prabhakar

+0

これは私が上でやっていたものとどのように違うのですか? –

関連する問題