今までこういう現象に出くわしたことがなかったのですが、
今回初めて使ったサーバで、
グローバル設定で保存を行うと、サイト名やメンテナンス中メッセージに含まれる日本語が削除される。
という現象が起こりました。
リソースの保存では、リソース名やタイトル、要約、内容など、どこに日本語を入れても問題ありません。
直接、phpMyAdmin等で日本語を入れると、表示はちゃんとでますが、
グローバル設定で保存を行うと、やはり日本語が消されます。
このサーバの「REPLACE INTO」の動作がおかしいのかと思ったりしましたが、
インストール時のsetup.sqlで「REPLACE INTO」を使っている、ロール名や説明はちゃんと日本語で入っています。
もしかして、「SqlParser」と「DBAPI」で微妙に違うとか?
環境は、以下です。
modx:1.0.1J
PHP:5.1.6、もしくは、それ以降(phpinfoが表示できないので詳細不明、できればまとめて問い合わせたいのですが)
MySQL:5.1.39-log
何か、ヒントになりそうな情報ありませんでしょうか?
グローバル設定で日本語が削除される 【解決済み】
グローバル設定で日本語が削除される 【解決済み】
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/
Re: グローバル設定で日本語が削除される
続きです。
PHPのバージョンは、5.3.0でした。
念のため、modx1.0.1Jについて、
splitなど、
PHP5.3から非推奨で使ってはいけない(E_DEPRECATEDエラーになる)ものがあるか調べてみました。
(バージョン5.3未満などの条件限定で使っているものは省いています)
PHPのバージョンは、5.3.0でした。
念のため、modx1.0.1Jについて、
splitなど、
PHP5.3から非推奨で使ってはいけない(E_DEPRECATEDエラーになる)ものがあるか調べてみました。
(バージョン5.3未満などの条件限定で使っているものは省いています)
コード: 全て選択
▼split
manager\includes\datefunctions.inc.php(9): list ($day, $month, $year) = split ("-", $date);
▼dl
manager\actions\files.dynamic.php(309): if(!@dl('php_zip.dll')) return 0;
manager\actions\files.dynamic.php(311): if(!@dl('zip.so')) return 0;
manager\includes\veriword.php(102): @dl('php_gd2.dll');
manager\includes\veriword.php(105): @dl('gd2.so');
manager\media\ImageEditor\editorFrame.php(19): @dl('php_gd2.dll');
manager\media\ImageEditor\editorFrame.php(22): @dl('gd2.so');
▼mysql_escape_string
assets\plugins\managermanager\functions\utilities.inc.php(136): $arr[$k] = "'".mysql_escape_string($tv)."'"; // Escape them for MySQL
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/
Re: グローバル設定で日本語が削除される
さらに続きです。
残念ながら、グローバル設定だけではなく、
テンプレート名等、いろいろなところで、日本語が消えます。
どちらかというと、リソースの保存では、たまたま日本語が保存できたと言った方がよさそうです。
残念ながら、グローバル設定だけではなく、
テンプレート名等、いろいろなところで、日本語が消えます。
どちらかというと、リソースの保存では、たまたま日本語が保存できたと言った方がよさそうです。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/
Re: グローバル設定で日本語が削除される
解決しました。
mbstring.internal_encodingが「EUC-JP」だったので、
次の1行を「.htaccess」に足したら治りました。
最近使っていたサーバは、
mbstring.internal_encodingが、設定なしか、utf-8のものばかりだったので、
こういうところに頭がいきませんでした。
mbstring.internal_encodingが「EUC-JP」だったので、
次の1行を「.htaccess」に足したら治りました。
コード: 全て選択
php_value mbstring.internal_encoding UTF-8
mbstring.internal_encodingが、設定なしか、utf-8のものばかりだったので、
こういうところに頭がいきませんでした。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/