#1749 closed enhancement (fixed)
PEAR::Authをバージョンアップする
Reported by: | ebihara | Owned by: | nobody |
---|---|---|---|
Priority: | major | Milestone: | OpenPNE2.11.3 |
Component: | pne-admin | Version: | |
Keywords: | Cc: |
Description (last modified by )
■概要
PEAR::Authをバージョンアップする
■仕様
- PEAR::Authを1.3.0から1.5.4にバージョンアップする
- session_registar() を使用しない形に変更されているので注意する
■関連情報
Change History (6)
comment:1 Changed 15 years ago by
Owner: | changed from nobody to ebihara |
---|---|
Status: | new → assigned |
comment:2 Changed 15 years ago by
Owner: | changed from ebihara to nobody |
---|---|
Status: | assigned → new |
PEAR::Authの1.3.1で以下の変更がありました。
* Fixed Bug #7860: Removed deprecated session_register call.
1.3.1時点でのコードは以下です。
// Make Sure Auth session variable is there if( !isset($_SESSION[$this->_sessionName]) && !isset($GLOBALS['HTTP_SESSION_VARS'][$this->_sessionName])) { isset($_SESSION) ? $_SESSION[$this->_sessionName] = array() : $GLOBALS['HTTP_SESSION_VARS'][$this->_sessionName] = array(); }
最新安定版 1.5.4 でも大して変わっておらず、以下のようになっています。
// Make Sure Auth session variable is there if(!isset($_SESSION[$this->_sessionName])) { session_register($this->_sessionName); }
ところが、ここでOpenPNEが使用している 1.3.0 のとおり session_register() を使わないと、OpenPNEへのログイン時に
Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in /example.com/webapp/lib/OpenPNE/Auth.php on line 12
が出てしまいます(事実、 1.5.4 でも session_register() を使うようにすれば動作する)。
動きを追ってみたのですが、どうも webapp/lib/auth.inc 14行目 の $auth->auth(); で false が返ってきてしまっているようです。どうしてかというと、PEAR::Auth の checkAuth() が false を返してしまっているからなのですが、どうして session_register() を使えば true になるのか、よく判りませんでした。
ちょっと9日のリリースに間に合わせるのは難しそうです。手放します。
comment:3 Changed 15 years ago by
Keywords: | 確認中 added |
---|
session_start()がされていない状態でsession_destory()がコールされていたのが原因なので、OpenPNE::factory()で強制的にsession_start()をコールすることで対処しました(二回目以降のsession_start()はNOTICEエラーを吐いて無視するだけなので)。
r4883で対応しました。御確認下さい。
comment:4 Changed 15 years ago by
Keywords: | 確認中 removed |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:5 Changed 15 years ago by
Description: | modified (diff) |
---|
comment:6 Changed 14 years ago by
Version: | 2.11.x |
---|
Note: See
TracTickets for help on using
tickets.
単純にコードをアップデートするだけだと、ログイン操作をおこなった場合に、以下のようなエラーメッセージを出力した上で、ログイン画面に戻ってしまいました。
原因については現在調査中です。