[PHP-users 20725]Re: POSTがおかしくなった
Moriyoshi Koizumi
moriyoshi @ at.wakwak.com
2004年 3月 12日 (金) 05:38:16 JST
小泉です。
# この問題 FAQ です。
# 投稿前にまずは ML のアーカイブを検索してみてはいかがでしょう。
http://ns1.php.gr.jp/pipermail/php-users/2003-March/014609.html
本家の bug #18648 (http://bugs.php.net/18648) に詳細があります。
■症状
GET メソッドによって送信されたクエリの取得は可能だが、
POST メソッドにより送信されたクエリの取得ができない。
特に、enctype="application/www-urlencoded" (デフォルト)
で送信された POST クエリーは送信されたクエリー文字列の
一部を繰り返したような不正な文字列となるのが特徴。
例えば、次のようなフォームで、
<form action="something.php" method="POST">
<input type="text" name="abc" />
<input type="submit" value="submit" />
</form>
テキストボックスに "def" と入力したとすると、
$_POST['abc'] の値が "defabc=def" となってしまう。
■この問題が発生するケース
次の条件が重なったときです。
1. Apache-2.x.x と php を RedHat の配布する RPM でインストールした。
2. (1) の後、php をソースからインストール、あるいは VineSeeds など、
RedHat の提供しているものでない RPM で更新した。
■解決法 (例)
- Apache-2.x.x と php を自力でインストールする
- Apache-1.x.x と php の組み合わせを使う
- /etc/httpd/conf/httpd.conf の、
<Files *.php>
SetInputFilter PHP
SetOutputFilter PHP
</Files>
または、
AddInputFilter PHP php
AddOutputFilter PHP php
となっている行を削除し、代わりに
AddType application/x-httpd-php .php
を追加する。
以上
On 2004/03/11, at 21:56, 大道 裕 wrote:
> 大道です。
> Redhat9、php-4.2.2-19_rh9、httpd-2.0.40-21.9
> です。
>
> mbstringが使いたかったので、php-4.2.2-17.2を
> php-4.2.2-19_rh9にアップデートしました。
> (rpm -Fvh php-*)
> すると、
>
> <form action="test.php" method="POST">
> <input type='submit' name='id' value=35>
> </form>
> を送信すると、
> $_POST['id']="35id=35"
> となります。
> value='user35'
> とすると
> $_POST['id']="user35id=user35"
> となります。
>
> method="GET" ですと、ちゃんと送れます。
>
> どうしたら直せるでしょうか?
> 元のバージョンに戻すこともできないですよね?
PHP-users メーリングリストの案内