[PHP-users 25152] セッション管理について

viola forza_viola @ proof.ocn.ne.jp
2005年 3月 27日 (日) 11:44:21 JST


viola と申します。

この度、セッション管理についてご質問させて頂きます。
-----------------------
■環境
PHP4.1.2
solaris7
-----------------------
セッション関数を使用し、あるサイトの管理ページを
作成しているのですが、挙動が期待する動きと違う為
この度質問させていただきます。

-----------------------
■現象
A ログイン画面にてID、パスワードを入力しログイン(html)
B 認証ロジックでOKであればメニュー画面へ(PHP)
C メニュー画面にてセッション処理実行
        1 session_start() // セッションスタート
        2 session_unregister() // セッションに登録された値を削除
        3 session_unset() // セッション開放
        4 $_SESSION[ID] = ID // セッションセット
        5 isset関数にてセッションが存在するかチェック、存在しなければ
         ログイン画面に戻す(Header関数使用)

D  ID、パスワード変更画面(この画面はPHP内にhtmlを記述しています)
        1 session_start() // セッションスタート
        2 isset関数にてセッションが存在するかチェック、存在しなければ
         ログイン画面に戻す(Header関数使用)
        
E  ID、パスワード確認画面(この画面はPHP内にhtmlを記述しています)
        1 session_start() // セッションスタート
        2 $_SESSION[ID] = ID // セッションセット
        3 isset関数にてセッションが存在するかチェック、存在しなければ
         ログイン画面に戻す(Header関数使用)
        4 ID、パスワード更新処理(SQL発行)
        
F  ID、パスワード変更完了画面(PHP内にhtml記述)
        1 session_start() // セッションスタート
        2 isset関数にてセッションが存在するかチェック、存在しなければ
          ログイン画面に戻す(Header関数使用)

*C〜Fのhtml画面では <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
を使用し、キャッシュをクリアしています。
          
以上、A〜Fまでの処理を行い、ID、パスワードを変更するのですが、
Fの確認画面よりリンクでメニュー画面に戻り、ID、パスワード変更画面
へ遷移した場合、変更前の情報が出力されてしまいます。
ブラウザをリロードすると更新された情報が出力されます。
----------------------
以上の現象が起こっているのですが、ID、パスワードの変更処理を行い、
再度 変更画面に遷移した際になぜ変更データが出力されないのか、
変更データを出力させるにはどうすれば良いのか


以上、ご教授頂けないでしょうか
宜しくお願いします。


PHP-users メーリングリストの案内