次のindex.phpに投稿するHTMLフォームがあります。
<?php require_once("/home/full/path/to/included/file.php"); ?>
そしてfile.phpで、$_POSTにアクセスしようとしています:
ob_start();
session_start();
var_dump($_POST);
$contents = ob_get_contents();
ob_end_clean();
echo $contents;
しかし、var_dump($_POST) は空の配列を返します。
ob 関数を index.php に移動しても効果はありません。
var_dump($_POST)を ob_start() の前に置くか、出力バッファリングを完全に削除すると、問題はなくなりますが、出力バッファリングが必要です。そこで、問題を突き止めるために、フォーム データを test.php に POST してみました。
ob_start();
$session_start;
var_dump($_POST);
$contents = ob_get_contents();
ob_end_clean();
echo $contents;
そして、それはすべてうまく表示されました。したがって、私のfile.phpの問題は、それが含まれていることと、出力バッファリングを使用していることのようです。セットアップに問題がありますか? $_POST に含まれている出力バッファ スクリプトからアクセスできないのはなぜですか? これを修正する方法、または代替手段はありますか? ありがとう。
編集:もう1つの考えられる要因:私のHTMLフォームタグはこれです:
<form action="/" method="POST">
mod_rewrite を使用して、それを index.php にリダイレクトします。action="/index.php" を試しても何も変わらないので問題ありません。