CMSとレンタルサーバの実験室
いろいろやってみようねっとに 新規登録しませんか?  
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
ブログカテゴリー
自作ツール
提供

2006年12月27日(水曜日)

[CMS] XOOPS Cubeを再導入してみる

サーバの引っ越しをしてMySQLのメジャーバージョンが変わったことは
昨日書きましたが、ということは…

今まで動かせなかったXOOPS Cubeが動くのかな?
ということで設置しただけで放っておいたサイトを確認してみると
なんと普通に動きそうじゃありませんか!!^^/

以前はXOOPSの設定などをするとデータベースの中身が
壊れてしまいましたが特に問題が発生しないようです。
これはちょっと嬉しいカモ^^

念のためPleskからphpMyAdminを使ってデータベースを見てみると
あらっ 2バイトコードが化けているT-T
テーブルのキャラクタコードが「latin1_swedish_ci」となっている。。。
前はEUCだったような気が。。。引っ越し時のデータ移動で変わってしまったかな?

とりあえずphpMyAdminからデータ変更しなければ問題なさそうなので
そっとしておいてもいいかな? と思いましたが気持ち悪さと
元々インストールしただけの状態だったのでもう一回入れ直してみた。

すると。。。今度はブラウザ表示もphpMyAdminも文字化けが。。。T-T

これはMySQL最大のウィークポイントのあの文字コード勝手変換機能のせいだ!
と思ったのでそれを回避すべくソースコードを弄ってみる。

変更したのは以下の通り

(XOOPS Cubeインストール先)/class/database/mysqldatabase.php (80行目付近)

  function connect($selectdb = true)
  {
    if (XOOPS_DB_PCONNECT == 1) {
      $this->conn = @mysql_pconnect(XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS);
    } else {
      $this->conn = @mysql_connect(XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS);
    }
    mysql_query("SET NAMES ujis”, $this->conn);
    if (!$this->conn) {
      $this->logger->addQuery('’, $this->error(), $this->errno());
      return false;
    }
   
    if($selectdb != false){
      if (!mysql_select_db(XOOPS_DB_NAME)) {
        $this->logger->addQuery('’, $this->error(), $this->errno());
        return false;
      }
    }
    return true;
  }

データベースアクセスの際に使用する文字コードを明示してあげることで
間違った変換をすることがなくなるはずです。

上の変更をした後、再度インストールして動作を見てみると…
バッチリOKでした!

もし同様の問題でお悩みの方がいらっしゃいましたら是非試してみてください!


TrackBacks

このコメントのRSS

TrackBack URL : http://www.yattemiyo.net/modules/wordpress/wp-trackback.php/62

この投稿には、まだコメントが付いていません

コメント

 
投稿された内容の著作権はコメントの投稿者に帰属します。

22 queries. 0.038 sec.
Powered by WordPress Module based on WordPress ME & WordPress

サイト内検索
カレンダー
2006年 12月
« 11月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  
最近の投稿
最近のコメント

 Comment RSS
アクセス解析
本サイトはphp-stats
使用しています