5

ubuntu 上の Apache 2.2.4 の下にある PHP 4.4 および PHP 5.2.3。

私は Moodle 1.5.3 を実行していますが、最近コースの更新時に問題が発生しました。$_POST 変数は空ですが、フォームのテキスト領域に大量のテキストが入力された場合のみです。短いテキストのみが入力されている場合は、正常に機能します。

post_max_size を 8M から 200M に増やし、memory_limit を 256M に増やしましたが、これは役に立ちませんでした。LimitRequestFieldSize と LimitRequestLine を 16380 に倍増し、LimitRequestBody を 0 に設定しましたが、改善はありませんでした。

私は答えを探しましたが、答えを見つけることができませんでした。

Firefox の HTTP ヘッダーは、正しいデータで 3816 のコンテンツ サイズを示しているため、$_POST に到達していません。

システムは数週間前まで正常に動作していました。唯一の変更は、exim4 電子メール サーバーでの HELO の問題を修正するために /etc/hosts に加えられました。

exim4 が実行されていない開発マシンで問題を再現できるので、単なる偶然だと思います。

ご協力ありがとうございます。

4

5 に答える 5

2

私は本当に有用な答えを提供するのに十分な知識を持っていないので、以下はより十分に教育された推測です (少なくとも私はそう願っています)。

まず、 access_log または firebug などを使用して、リクエスト全体をデバッグする必要があります。(とにかく Firebug を持っているのは良いことです。) 私には、あなたの問題はリダイレクトが間に発生するように思えます。例を挙げます:

これがあなたの構造であると仮定します:

/form.php
/directory/index.php

これはあなたのフォームです:

<form action="/directory" method="post">
...
</form>

この場合の問題は、 が/directory有効な URL であっても、Apache が にもう一度リダイレクトするため/directory/、ペイロード ( にあるはずのもの) が失われることです$_POST

于 2008-10-23T13:00:28.027 に答える
1

投稿のサイズではなく、改行前の行の長さでしょうか。Moodle の WYSIWYG ビューを使用すると、html は改行なしで 1 行にまとめられます。html にアクセスして、1000 文字ごとに return キーを押すと機能しますか?

于 2008-10-23T15:19:06.717 に答える
1

フォームの enctype は何ですか? フォームから送信されるデータの量が制限されている可能性があります。

また、受信した生の $_POST データを次の方法で確認することもできます。

file_get_contents('php://input');

それらが実際にデータ送信されていることを確認するため。ここでこれらの提案を得ました。

于 2008-10-23T11:43:34.500 に答える
0

Apache または Apache/PHP の統合の問題のようです。$_POST が空の場合、http サーバーが POST 情報を PHP に提供していないことを示唆しています。私があなたなら、Apache の設定を調査します。

于 2008-10-23T10:42:18.213 に答える
0

これは明らかですが、 /etc/init.d/apache2 を再起動しましたか?

また、error_log ファイルには、投稿サイズが設定された制限を超えたかどうかに関する情報が表示されるはずです。問題のトラブルシューティングのために詳細度を上げることを検討してください

于 2008-10-23T10:57:31.770 に答える