[PHP-dev 317] Re: 藤本版PHP4のmultipart/form-dataの問題

桝形 誠二 php-dev@php.gr.jp
Tue, 30 Apr 2002 11:52:57 +0900


こんにちわ、桝形です。

僕もふじもとさん版のPHPにお世話になっています。

当事者ではないのですが、こちらで多少テストしてみました。
結果的にはあさかわさんと似たような状況になってしまいます。

以下、再現スクリプトです。

Form.html
-------------------------------------------------------
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CharSet=Shift_JIS">
<META HTTP-EQUIV="Pragma" CONTENT="No_Cache">
</HEAD>
<BODY>
<FORM ACTION="Form.php" ENCTYPE="multipart/form-data" METHOD="POST">
  <INPUT TYPE="hidden" NAME="Hidden" VALUE="ダミーを挿入するとどうなるか?">
  <INPUT TYPE="file" NAME="File" size="30">
  <INPUT TYPE="text" NAME="Text" size="30">
  <INPUT TYPE="submit" VALUE="処理を実行する">
</FORM>
</BODY>
</HTML>
-------------------------------------------------------

Form.php
-------------------------------------------------------
<?
echo "[".$_POST[Text]."]<BR><BR>";
echo "[".$_POST[Hidden]."]<BR><BR>";
phpinfo( );
?>
-------------------------------------------------------

入力フォームのテキストエリアには[テストしたいねん。]と
入力しました。

それぞれ、
[テストしたいねん。]→[eXgB]
[ダミーを挿入するとどうなるか?]→[_~[}H]

の文字列に変わっていました。

php.iniの設定は、
[mbstring]
mbstring.internal_encoding    = EUC_JP
mbstring.http_input           = auto
mbstring.http_output          = SJIS
mbstring.detect_order         = auto
mbstring.substitute_character = auto
(mbstring.script_encoding      = SJIS)
(mbstring.script_encoding      = auto)
(mbstring.script_encoding      = EUC_JP)

と、3つほど試してみたのですが全て同じ結果になりました。
ちなみに、ENCTYPE="multipart/form-data"をはずして実行
するとどれも問題はありません。

PHPのバージョンは4.1.2で、
http://nxweb.dyndns.org:8080/downloads/php-4.1.2-multibyte.tar.gz
を使用させていただきました。

報告がダブってしまいましたら申し訳ありません。

> # 4.2.0版のパッチ/アーカイブもあったほうが良いですか?
php-dev@php.gr.jp
。。。できればあった方が嬉しいです。:-)
_______________________

  桝形 誠二( Masugata Seiji )
  E-Mail : s.masugata@digicom.dnp.co.jp

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄