「娘娘」というエントリが編集不可。

  • ページ: BugTrack
  • 投稿者: GLM?
  • 優先順位: 低
  • 状態: 却下
  • カテゴリー: その他
  • 投稿日: 2003-10-10 (金) 08:58:28
  • バージョン: 1.4rc4

メッセージ

「娘娘」というエントリを作成し、編集しようとすると「??の編集」となります。


  • うーん 再現しませんねぇ。merlin:娘娘 環境はなんでしょうか? -- merlin 2003-10-10 (金) 10:25:50
  • official:mbstring と同じ EUC-JP の運用だという前提で。
    mbstringの設定とPHPのバージョンに依存して発生します。 encoding_translation を有効にすると入力文字列は http_input に従って検出/変換されますが、短い文字列の場合に誤動作する場合があります。これはBugTrack/296で述べられているとおりです。
    ただ、PHP4.2.2 では問題無く 4.3.3 では報告の症状になりました(何れも Windows Host 上で確認)。旧 ver では入力変換部が期待通りに動作していなかったのかもしれません。
    現状 POST メソッドの動作に関しては対策されていますが、newpage.inc.php では location ヘッダを出力しているので encode_hint がありません。このケースでは
    cmd=read&page=%CC%BC%CC%BC%refer=...
    というクエリになり、refer がシングルバイト文字の場合 $_GET['page'] の内容が正しく受け取れていません*1
    対処としては、
  1. mbstring.encode_translation = Off にする
  2. location ヘッダ出力にヒント(第二バイトが \xfd|\xfe の文字)を付加する
    newpage.inc.php:46
    -header("Location: $script?cmd=read&page=$r_page&refer=$r_refer");
    +$hint = rawurlencode('棄');
    +header("Location: $script?cmd=read&page=$r_page&refer=$r_refer&hint=$hint");
    の何れかではないでしょうか。-- とおが? 2003-12-17 (水) 22:52:39
  • PHP4の特定のバージョン、EUC-JP設定の場合に発生の可能性があるというということですね。UTF-8設定の最近の環境では発生しにくいと考えられるので Status:却下 とします。同じ問題に遭遇した人がいらっしゃいましたらReopenしてください -- umorigu 2017-10-24 (火) 23:28:43


*1 PHP-users に同様の話題がありました。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-10-24 (火) 23:28:43
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.211 sec.

OSDN