注文の多いXOOPS屋 TOP現在のブログ旧スタッフblog アーカイブ
このページは 2007〜2008 年に公開していた「株式会社RYUS スタッフblog」のアーカイブです。内容は当時のものです。

セッションテーブルの修復用preload

2007/11/07 18:38   gusagi   カテゴリ: XOOPS Cube

gusagiです。
今日は、セッションテーブルが壊れてログイン出来ない場合の対処法を書かせて頂きます。

XOOPSでは、セッション情報を{prefix}_sessionというテーブルに保存しています。
(注){prefix}はインストール時に設定するもので、mainfile.php内の[XOOPS_DB_PREFIX]として記述されている値です。
このテーブルが何らかの理由で壊れてしまうことがあるのですが、そうなると管理者も含めて、全てのユーザがログイン出来なくなります。
自分でサーバ管理をしている人の場合は、上記のテーブルを修復すれば良いのですが、レンタルサーバなどでDBを直接弄ることが難しい人もいるかと思います。
そんな場合、XOOPS Cube Legacyをご利用の方でしたら、以下の方法を試してみて下さい

----
(1)以下のコードをコピーして、repairPreload.class.phpとして保存して下さい。

<?php
include_once dirname( dirname(__FILE__) ) . '/mainfile.php';
$tableName = $xoopsDB->prefix( 'session' );
$sql = "REPAIR TABLE $tableName";
$xoopsDB->queryF( $sql );/PRE

(2)保存したファイルを、XOOPS_ROOT_PATH/preload にアップロードして下さい。

(3)サイトのトップページにアクセスして下さい。

(4)アップロードしたrepairPreload.class.phpをサーバから削除して下さい。
----

以上で、sessionテーブルが修復されます。
注意点として、(3)を行った後は、すぐに(4)を行うようにして下さい。
アップロードしたままですと、逆にセッションテーブルを壊すことになりかねません。

たった5行のプリロードですが、もしよろしければお試し下さい。