mocapapa
mocap****@pugpu*****
2008年 8月 21日 (木) 18:27:31 JST
微妙に違う件ですが。。。 On Thu, 21 Aug 2008 12:12:44 +0900 "Takeshi Amano" <p****@takes*****> wrote: > 天野です > > > ちょっと気になったんですが、 > > セッションが切れた後にセッション変数がとれるというのはどうなんでしょう? > > まぁそうなんんですが、CIのデフォルトではcookieに入れているので同じ > セッションの挙動のはずですよね? Simpleloginを改造する過程で気づきましたが、CIのデフォルトのsessionはバグ があるようです(?) あるいはSimpeloginの実装の方が間違っているのかもしれませんが、 Simpleloginのloginメソッドにおいて、すでにログイン中かをチェックしていま す。 //Check if already logged in if($this->CI->session->userdata('username') == $user) { //User is already logged in. return false; } ところが、サンプルプログラムを作成してみるとログアウトしてもログイン中と いう動作をするため、調べると実際には上記のuserdataに値(username)が残って います。そこで、Simpleloginのログアウト処理を調べると、 function logout() { //Put here for PHP 4 users $this->CI =& get_instance(); //Destroy session $this->CI->session->sess_destroy(); } このようにsess_destroyを呼んでおり、CIのsess_destroyメソッドを調べるとクッ キーのセットのみということがわかりました。 従って、CIではなくそれを呼び出すSimpleloginのlogouメソッドに if (isset($CI->session->userdata)) $CI->session->userdata = NULL; と破壊してやったらうまくログアウトできました。皆さんのところでは Simpleloginはうまく動いていますか? -- モカぱぱ <mocap****@pugpu*****>