*redhat8.0付属のphpでpukiwiki1.4が実行できない [#v723040d] -ページ: BugTrack -投稿者: [[kosaki]] -優先順位: 普通 -状態: 完了 -カテゴリー: その他 -投稿日: 2003-05-06 (火) 09:47:03 -バージョン: 1.4 **メッセージ [#nd2132ae] redhat8.0のphpの問題か? ------------------------------------------- [URL] ~ pukiwiki.php?plugin=stripbracket [error message(ブラウザにいかのように表示される)] ~ Fatal error: Call to undefined function: mb_internal_encoding() in /var/www/html/pukiwiki/init.php on line 17 ---- -1.3.4は実行できたけど、1.4を上書きインストールしたら、エラーがでるようになったよ。って意味です -- [[kosaki]] &new{2003-05-06 (火) 09:53:15}; -[[official:RedHat]]参照。--enable-mbstring付きでリビルドする必要あり。 -- &new{2003-05-06 (火) 13:16:13}; -はい。要望ですね。1.3.xがredhatでもなんとか動くので1.4もなんとかしてほしいという。リビルドは敷居が高すぎるので -- [[kosaki]] &new{2003-05-09 (金) 09:58:27}; -[[PHP SAMPLES & TIPS>http://www.spencernetwork.org/]]の漢字コード変換(jcode_1.34.zip)を使用して、mb_*関数を提供するスクリプトを作ってみました。添付した&ref(mbstring.php);とjcode.phpsその他をpukiwiki.phpと同じところに置いて、pukiwiki.phpに以下のパッチを当てて試してみてください。 EUC-JPベースのPukiWikiで((遅いのを我慢すれば))ある程度は動くはずです。 -- [[ぱんだ]] &new{2003-05-09 (金) 13:46:13}; require('config.php'); require('link.php'); +require('mbstring.php'); --きっちりテストしたわけではないので、どんな不具合が出るかは予測不能です。あと、mb_encode_mimeheader()を実装していないので、articleのMAIL_AUTO_SENDを1にするとエラーになると思います。 -- [[ぱんだ]] &new{2003-05-09 (金) 13:49:38}; -mb_convert_variables と mb_detect_order が足りないようです。適当に追加してみたら動いているように見えます -- [[merlin]] &new{2003-07-01 (火) 17:19:24}; --[[置いてみました>http://s1.buttobi.net/martian666/]]。まだ 内容がありませんが ;) [[merlin]] &new{2003-07-02 (火) 00:29:32}; -私は、以下のようにしています。特に不具合は出ていません。但し、海外のレンタルサーバーで mb_string 無しだった為です。RedHat ではありません(OS は関係ないですけどね)。 -- [[三浦克介]] &new{2003-07-01 (火) 19:14:50}; *** init.php 22 Jun 2003 06:42:03 -0000 1.52 --- init.php 1 Jul 2003 10:08:14 -0000 *************** *** 16,22 **** define('LANG','ja'); mb_internal_encoding(SOURCE_ENCODING); mb_http_output(SOURCE_ENCODING); ! mb_detect_order('ASCII,JIS,EUC,UTF-8,SJIS'); // mb_detect_order('ASCII,JIS,UTF-8,EUC,SJIS'); // UTF-8を優先する場合 ///////////////////////////////////////////////// --- 16,22 ---- define('LANG','ja'); mb_internal_encoding(SOURCE_ENCODING); mb_http_output(SOURCE_ENCODING); ! // mb_detect_order('ASCII,JIS,EUC,UTF-8,SJIS'); // mb_detect_order('ASCII,JIS,UTF-8,EUC,SJIS'); // UTF-8を優先する場合 ///////////////////////////////////////////////// *************** *** 145,151 **** $cookie = sanitize($_COOKIE); // ポストされた文字のコードを変換 ! mb_convert_variables(SOURCE_ENCODING,'',$get,$post); if (!empty($get['page'])) { $get['page'] = strip_bracket($get['page']); --- 145,157 ---- $cookie = sanitize($_COOKIE); // ポストされた文字のコードを変換 ! //mb_convert_variables(SOURCE_ENCODING,'',$get,$post); ! foreach($get as $tmpkey=>$tmpvalue) { ! $get[$tmpkey] = mb_convert_encoding($tmpvalue, SOURCE_ENCODING,''); ! } ! foreach($put as $tmpkey=>$tmpvalue) { ! $put[$tmpkey] = mb_convert_encoding($tmpvalue, SOURCE_ENCODING,''); ! } if (!empty($get['page'])) { $get['page'] = strip_bracket($get['page']);