[PHP-users 18467]multipart/form-data時のhttp_input

ml-kajiya @ apnets.co.jp ml-kajiya @ apnets.co.jp
2003年 10月 16日 (木) 11:05:52 JST


初めて投稿させて戴きます。

PHP 4.3.3 から、multipart/form-data の場合も、_POST, _FILE[]['name']
は内部文字エンコーディングに変換されますが、変換元のエンコーディング
判定は、auto 固定なのでしょうか?

http_input を SJIS のみに設定し、アイ(半角カナ)を submit しました。
application/x-www-form-urlencoded の場合、正しく変換され、
multipart/form-data の場合、EUC-JP と認識されているようです。
mbstring.detect_order も指定してみましたが、結果は同じです。

multipart/form-data の場合、文字コードを指定するパラメータが
他にあるのでしょうか?それとも auto 固定?

----- .htaccess -----
<IfModule mod_php4.c>
    php_value   mbstring.language               Japanese
    php_flag    mbstring.encoding_translation   On
    php_value   mbstring.detect_order           SJIS
    php_value   mbstring.http_input             SJIS
    php_value   mbstring.internal_encoding      EUC-JP
</IfModule>

----- application/x-www-form-urlencoded の form -----
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
  </head>
  <body>
    <center>
      <form action="test.php" method="POST">
        <input type="text" name="test" value="アイ"> ←実際は半角カナ
        <hr>
        <input type="submit">
      </form>
    </center>
  </body>
</html>

----- multipart/form-data の form -----
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
  </head>
  <body>
    <center>
      <form action="test.php" method="POST" enctype="multipart/form-data">
        <input type="text" name="test" value="アイ"> ←実際は半角カナ
        <hr>
        <input type="submit">
      </form>
    </center>
  </body>
</html>

----- submit 先の test.php -----
<html>
  <body>
    <pre>
      <tt>
<?php print_r($_POST); ?>
      <tt>
    <pre>
  <body>
<html>



PHP-users メーリングリストの案内