Xoops2.0.16a jpをPHP5+MySQL5の環境で使うときの留意点

2016年3月28日

slider1

これまでXoopsは2.0.16a JPをPHP4 + MySQL4の環境で使っていましたが、昨今のサーバ環境でこのPHP4 + MySQL4の環境ををサポートしていないサーバが増えてきて、今やっている案件からPHP5 + MySQL5の環境を使うようになりました。

試しにXampp166aを使って既存のPHP4 + MySQL4で構築したXoopsサイトを変換してみましたが、文字化けをおこして使い物にならりませんでした。データベースの文字コードはEUC-JPに指定して、PHPMyAdmin上では文字化けせずにデータは表示されてるし、.htaccessでPHPで扱う文字コードもEUC-JPを指定しているにも関わらず文字化けをおこしているのです。

それではと思い、Xoopsを新規インストールしてみると、これまた文字化け。データベースの文字コードをutf-8にしてみてインストールすると表示上は文字化けをおこさなないのですが、PHPMyAdmin上では文字化けしているとういう訳がわからない状態になってしまいました。

いろいろと試行錯誤しながら、ググりながらやっていたら

http://sb.xrea.com/showthread.php?t=11583

にたどり着き、何とか解決しました。

方法は

/class/database/mysqldatabase.php
の236行目付近の
$result =& mysql_query($sql, $this->conn);
の上に
mysql_query("SET CHARACTER SET ujis", $this->conn);
を追加

前後のコードはこんな感じ。

        $sql = $sql. ‘ LIMIT ‘.(int)$start.’, ‘.(int)$limit;
         }
        mysql_query(“SET CHARACTER SET ujis”, $this->conn);  //これを追加
        $result = mysql_query($sql, $this->conn);
        if ( $result ) {
            $this->logger->addQuery($sql);
            return $result;
        } else {

 

xoops

Posted by kinya