2011-09-13 6 views
3

セッション変数を使用してログインとページアクセスを制御しています。変数を使用して、ユーザーが属する別のユーザー・グループを制御します。そのため、かなりのセッション変数があります。セッションを破棄しますが、1つの変数を設定してください

セッション変数を使用して、更新時に最後に訪問したユーザーを覚えています。

ユーザーがログアウトすると、私はsession_destroy()を使用します。すべての変数を削除します。 私がしたいのは、ユーザーがログアウトした後でも最後に訪れたページ変数を維持することです。

私は他のすべての変数を設定解除機能を使用することによってそれを行うことができると思いますが、たくさんありますし、もっと簡単な方法があったか不思議でしたか?

おかげ 編

答えて

1

あなたは、このためのコードの下に試すことができ、

$Arr_not_destoy_session = array('last_visited_id'); 

     foreach($_SESSION as $sees_key => $sess_val){ 
      if(!in_array($sees_key, $Arr_not_destoy_session)){ 
       unset($_SESSION[$sees_key]);  
      } 
     } 

これはonly.youができる「last_visited_id」以外のすべてのセッション変数の設定を解除しますまた、後で削除したくないこの配列の値を追加してください。

ありがとう。

0

さてあなたは、セッションを破壊するが、そうする前に、あなたは新しいセッション変数に入れされる変数に最後のページを保存することができます。

$ LASTPAGE = $ _SESSION [ 'LAST_PAGE'] $のsession_destroy(); $ lastPageを使って新しいセッションを作成します。

もう1つの方法は、ユーザーが訪問した最後のページをdbのユーザーレコードに保存することです。 (これはどこからでもそれがアクセスできるようになり、それが特定の場所も文句を言わない)

+1

を維持し、他のすべてと同じように。それは私が将来一緒に行くものかもしれません!ありがとう!! Eds – Eds

0

unset()を使用して既存のフォールバックソリューションに戻ってみると、これは問題が多いことですが、それは難しくありません。私はまだこれがあなたの問題の良い解決策だと思っています。

まず、あなたはforeach()ループを使用して、それらすべての設定を解除することができ、これが唯一の数行のコードが必要になります

foreach($_SESSION as $key=>$value) { 
    if($key != "the_one_you_want_to_keep") { 
     unset($_SESSION[$key]); 
    } 
} 

あなたは、単一のトップレベルの配列を設定解除することによって、それらをクリアすることができるように、サブアレイであなたのセッションデータを整理するだろう、それを行うための別の方法その他のサブアレイには他のサブアレイをそのまま残しておきます。

unset($_SESSION['user_data']); 
//but don't unset $_SESSION['data_to_keep'] 

希望します。

+0

私はもう一度答えを出しましたが、これは良いアドバイスです、ありがとう! Eds – Eds

0

セッション変数を配列にグループ化し、それらの設定を解除すると、1つまたは複数の配列を$_SESSIONに設定する必要があります。あなたは、セッション中にユーザー情報を保持している場合たとえば、これを試してください:ログアウト後

$_SESSION['user_info'] = array(...);

$_SESSION['last_visited_page'] = '...';

あなたは$_SESSION['user_info']だけの解除ができ、また、良いアイデアです$_SESSION['last_visited_page']

+0

** $ _ SESSION ['user_info'] **配列を作成する必要はありません。これはまったく役に立たないです。すべてのセッション変数は** $ _ SESSION **のみになります.Thx – Chandresh

+0

IMOこれはより便利です。** 1つずつ行うのではなく、** $ _ SESSION **で1つの変数を設定解除するだけです。 – haynar

+0

変数をグループ化することは合理的な助言のようです、ありがとう! 改訂版 – Eds

関連する問題