The skies belong to everyone ! Now, let us take back our 'Shattered Skies' !

ログアウト

phpでログアウトの処理を書いていて気がついたが、どうも、認証かけてあるページにダイレクトでアクセスしたときに、エラーがでてしまっている状況。


session_destroy()とかsession_unset()を書いてみたものの、なんだかちゃんと動いていないな。どうしたものか。


例えばシリアルナンバーをPOSTしてDBに照会してから、一致すれば認証成功でその値をセッションに代入・フラグを立てて、一致しなければエラーを返している。その先のページに関しても、セッションIDが一致しなければログイン画面へリダイレクトする方法にしている。


つまり、認証しなければ、ページの表示はさせない。
ここで問題なのが、認証先のページを直に参照された場合、セッションIDがない、もしくは一致していないわけだから、ログイン画面にリダイレクトしているはずなんだが、エラーが出る。


何度もテストして、ログイン→認証成功→つぎのページ ならばまだセッションが切れていないので、エラーはでない。これは当たり前。そこで、ログアウトの処理(要はセッションを破棄みたいなこと)を書いてみたがどうもここでセッションがまだ有効な状態なのかしらんが、うまくいかないんだよなあ・・・
エラー内容は、リダイレクトの処理で、header(Location ・・・)を書いたところ周辺っぽいことが出ていたが。多分書き方がまずいのか・・・


これだから私みたいな中途半端なやつはダメなんだよな。
基礎もなければ応用力もない。

5 Entries of this Category

TrackBack

Comments Comments