Caller.htm
<form method="post" action="Callee.php?Query1">
<input type="text" name="PostData" />
<input type="submit" value="Go" />
</form>
Callee.php (вызывается дважды.)
if ($_POST) {
header("Location: ". $_SERVER['REQUEST_URI']. 'Query2');
// PART1: Use $_POST and $_GET to execute database updates here...
// Now any display (i.e. echo or print) will come after the header.
// ...
die; // When done, GET 'myself' to execute PART2 below.
}
// PART2: Results page goes here...
echo 'PART 2 display output: '; var_dump($_GET);
Обратите вниманиезадействованы две строки запроса
Посмотрите, что var_dump говорит о $ _GET:
PART 2 display output: array(1) { ["Query1Query2"]=> string(0) "" }
Проблемы с размещением заголовка в конце процедуры POSTследующий раздел:
header("Location: ". $_SERVER['REQUEST_URI']. 'Query2'); die;
В руководстве по PHP написано: «Помните, что header () должна вызываться перед отправкой любого фактического вывода, либо обычными HTML-тегами, пустыми строками в файле, либоиз PHP. Это очень распространенная ошибка при чтении кода с включенными или требующими функциями или другой функцией доступа к файлу, с пробелами или пустыми строками, которые выводятся до вызова header (). Та же проблема существует при использовании одногоФайл PHP / HTML. "
Однако, если вам нужно построить 'Query2' на основе того, что происходит в разделе POST, возможно, он должен находиться внизу раздела POST.Это нормально, если вы не пытаетесь вставить эхо над ним, даже для тестирования.