2012-05-08 6 views
1

<form>タグが複数あるページで作業しています。問題の形態の1つは、のようなものになります。POST変数が正しく動作しない

​​

をしかし、私はind_profile.phpでPOST変数をvar_dump()に行くとき、私の配列は空です。私はこの質問についてより多くの洞察を提供する方法はわかりませんが、POST変数が正しく渡されない理由について考えています。

1ページ内に複数の<form>タグがあると、値が正しく渡されません。

ob_start() 
require('crm_common.php'); 

var_dump($_POST); 


switch(@$_POST['action']) { 
case 'update': 

ありがとう:要求されたよう

は、ここでPOST変数の1つを評価snipitです。

+0

変数を取得するind_profile.phpのコードを共有すると役立ちます。 –

+0

以下の回答に加えて、

が別のアクション、メソッドなどで開かれていないことを確認してください。別のアクションやメソッドなどを開く前に必ず閉じてください。時にはそれを見落とすのが簡単で、デバッグが面倒です。 – tcole

答えて

1

コメントで説明したように、出力バッファ(ob_start())がフラッシュされるか閉じられるまで、コンテンツは送信されません。出力バッファリングの詳細については、the manualを参照してください。


複数のフォームは問題ではありません。

出力バッファを開始したことに気付きました。あなたはコンテンツを取得するか、後でそれをフラッシュしますか?試してください

echo "<pre>"; 
print_r($_POST); 

ファイルの最初のものとして。

+0

答えSylverdragに感謝しますが、$ _POST配列はまだ空です。これは古いコードで、 'ob_start()'にはあまり慣れていませんが、私はそれを取得またはフラッシュするとは思いません。 – etm124

+1

@ etm124ああ、それだけです。 ob_start()は、出力がフラッシュされるか変数に格納されて再利用されるまで、出力を保持します。それをフラッシュしたり内容を取得したりしないと、スクリプトはヘッダから何も出力しません。 – Sylverdrag

0

特定の送信ボタンから投稿していますか?

if(isset($_POST['nameOfSubmitButtom'])){ 
    var_dump(); 
} 
+0

私はそうではありません。 POST変数をどのように評価しているかを示すコードを追加しました。 – etm124