将 POST 传递到两个页面?

Pass POST over to two pages?

我有以下页面(仅代码片段)

Form.html

<form method="post" action="post.php">
<input type="text" name="text" placeholder="enter your custom text />
<input type="submit">
</form

post.php

....
some code here
....
header('Location: process.php');

process.php

在此页面上,需要来自 form.html 的 "text" 输入。

我现在的问题是,如何通过 process.php 从第一页传递输入帖子而不丢失它?

我不想使用 process.php?var=text_variable 因为我的输入可能是一个很大的 html 文本,由 CKeditor 插件(一个类似文字的文本编辑器)格式化,并且会产生类似这样的结果process.php?var=<html><table><td>customtext</td>......

我怎样才能解决这个问题?

我想要一个纯粹的 php 解决方案,并尽可能避免使用 js、jquery。

使用 $_SESSION 或包含 process.php 以及调用 post.

的预定义变量
$var = $_POST['postvar'];
include process.php;

Process.php 有 echo $var; 或者您可以将一个函数写入 process.php,您可以将 var.

传递给该函数

也许文档可以提供帮助:http://php.net/manual/fr/httprequest.send.php

尤其是示例 #2:

$r = new HttpRequest('http://example.com/form.php', HttpRequest::METH_POST);
$r->setOptions(array('cookies' => array('lang' => 'de')));
$r->addPostFields(array('user' => 'mike', 'pass' => 's3c|r3t'));
$r->addPostFile('image', 'profile.jpg', 'image/jpeg');
try {
    echo $r->send()->getBody();
} catch (HttpException $ex) {
    echo $ex;
}

但我不会使用这种繁重的方式,因为会话可能而且更容易,请参阅前面的 answer/comments。 例如,如果你想调用一个预先存在的等待 post-data 的脚本,如果你不能(或不想)修改被调用的脚本,这是可以的。或者如果没有可能的会话(例如跨域调用)。

如果你不想使用$_SESSION你也可以在页面中制作一个表单,然后将数据发送到下一页

<form method="POST" id="toprocess" action="process.php">
    <input type="hidden" name="text" value="<?php echo $_POST["text"]; ?>" />
</form>

<script>
document.getElementById("toprocess").submit();
</script>

或者您可以将表单部分提交到任何导致移动到另一个页面的结果。

话虽如此,使用 $_SESSION 是最简单的方法。