Я видел другие вопросы, которые в основном задают тот же вопрос, и я считаю, что на самом деле невозможно сделать то, что вы хотите эффективно. Мое собственное мнение таково, что будет гораздо больше работы, чтобы сделать то, что вы хотите, чем просто развернуть SESSION
:
<?php
session_start();
if (!is_array($_SESSION['posted'])) {
$_SESSION['posted'] = array('test'=>'test');
} else {
$_POST = $_SESSION['posted'];
unset($_SESSION['posted']);
}
echo '<pre>';
echo "<strong>POST:</strong>\n";
print_r($_POST);
echo "\n";
echo "<strong>SESSION:</strong>\n";
print_r($_SESSION);
?>
* Примечание. У меня не установлен SSL на моем сервере, поэтому я не могу это продемонстрировать. Это предназначено для демонстрации повторного заполнения массива POST
только из массива SESSION
.
http://jfcoder.com/test/postsession.php (Обновить, чтобы увидеть, как оно меняется.)
Так что, если вы можете так легко перестроить массив POST
, почему бы просто не сделать это? Я полагаю, что ресурсы, необходимые для выполнения запросов, которые необходимы и фактически используются, будут незначительными, поскольку вы действительно делаете это только на мгновение.
Если у вас нет сотен тысяч или миллионов одновременных обращений, я не могу представить, что вышесказанное является проблемным ресурсом. Если это так, то просто обработайте его перед перенаправлением. В любом случае, они уже отправили данные в открытом виде.
^ Кроме того, вам также потребуется обрабатывать загрузку файлов, если вам это нужно.