XPressME Integration Kit

Codex

アクセスするとログアウトしてしまう。

症状

XOOPSにログインした状態で、XPressMEモジュールにアクセスするとログアウトしてしてしまうことがあります。

原因

これは、php.iniの設定でregister_globalsがONに設定してある場合に発生します。

wordpressではセキュリティー対策のためregister_globalsがONの場合、$GLOBALS[]の一部をunsetしています。
その結果、セッションIDが変わってしまい、XOOPS上ではログアウト状態になってしまいます。

register_globalsの設定状態を確認するには

XPressMEのシステム情報からregister_globalsの設定状態を確認することができます。

system_info_reg_global

処置方法

追記(2011/03/21)

この症状の対策としてチェンジセット694を施しましたので下記対策は不要です。(Ver 2.4.0より適応)

通常は、セキュリティーの問題からregister_globalsはOFFとしてあると思うのですが、事情があってONにしなければならないのであれば、

wp-settings.php の46行目あたりの

wp_unregister_GLOBALS();

の部分をコメントアウトすることで、ログアウトを避けることができます。

但し、この部分は、 WordPress側のコードですので WordPressのアップグレードを行うたびに変更が必要となるので、あまりお勧めしません。
やはりregister_globalsは可能な限りOFFにしておくことをお勧めします。

register_globalsをオフにする方法

.htaccessに php_value register_globals 0 を記述します。

追加

この症状の対策としてチェンジセット694を施しましたので下記対策は不要です。(Ver 2.4.0より適応) 2011/03/21追記