将 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 是最简单的方法。
我有以下页面(仅代码片段)
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 是最简单的方法。