У меня есть HTML-форма POSTing на следующий index.php:
<?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 (), ИЛИ, если я полностью удаляю буферизацию вывода, проблема исчезает, но мне нужна буферизация вывода. Поэтому, пытаясь найти проблему, я попытался отправить данные формы POST на test.php:
ob_start();
$session_start;
var_dump($_POST);
$contents = ob_get_contents();
ob_end_clean();
echo $contents;
И все отлично отображало. Таким образом, проблема с моим файлом file.php, похоже, заключается в том, что он как включен, так и использует буферизацию вывода. Вы видите проблему с моей настройкой? Почему не может получить доступ к $ _POST включенный скрипт с буферизацией вывода? Вы видите способ исправить это или альтернативу? Спасибо.
РЕДАКТИРОВАТЬ: Еще один возможный фактор: мой тег HTML-формы таков:
<form action="/" method="POST">
Я использую mod_rewrite, чтобы перенаправить его на index.php. Я пробую action = "/ index.php", но ничего не меняется, так что это не имеет значения.