Php 将表单post数据发送到会话变量
我有一个与表格,需要通过邮寄发送页面。 我的htaccess中有重定向,导致post数据丢失,因此我想将该数据放入会话变量中,以供另一个页面拾取 表单页面上下面的会话变量“favcolor”仅作为测试仪存在。 第二页上的输出应该显示表单中的数据,但不是。这是一个空数组。但它显示的颜色变量是ok 我已经将代码缩减到最简单的几行来测试它,但无法让它工作。有人能帮我指出正确的方向吗 表格页:Php 将表单post数据发送到会话变量,php,Php,我有一个与表格,需要通过邮寄发送页面。 我的htaccess中有重定向,导致post数据丢失,因此我想将该数据放入会话变量中,以供另一个页面拾取 表单页面上下面的会话变量“favcolor”仅作为测试仪存在。 第二页上的输出应该显示表单中的数据,但不是。这是一个空数组。但它显示的颜色变量是ok 我已经将代码缩减到最简单的几行来测试它,但无法让它工作。有人能帮我指出正确的方向吗 表格页: <?php session_start(); $_SESSION['post-data'
<?php
session_start();
$_SESSION['post-data'] = $_POST;
?>
<form action="zv.php" method="post">
Name:<br>
<input type="text" id="inputName" name="inputName">
<br>
Email:<br>
<input type="text" id="inputEmail" name="inputEmail">
<br>
Telephone Number:<br>
<input type="text" id="inputTel" name="inputTel">
<input type="submit" id="submit" value="Submit">
</form>
<?php
$_SESSION["favcolor"] = "green";
?>
只有在有post请求时,才需要设置此($\u会话['post-data']=$\u post)
zv.php是第二个页面吗?如果zv.php是第二个页面,那么它将不会像您期望的那样工作。单击提交后,zv.php
将打开,在zv.php
中,$\u POST
变量将填充表单数据。在您的第一个页面中,$\u POST将为空,因为尚未写入任何内容。您需要在zv.php中执行$\session['POST-data']=$\u POST
,因为数据已发布/提交到zv.php,因此仅在那里可用“我的htaccess中有重定向,导致post数据丢失,因此我想将该数据放入会话变量中,以便另一个页面拾取。”-那么,为什么您不能先将数据发送到正确的URL?我将使用$\u SERVER['REQUEST\u METHOD']=='POST'
那么你对submit
的依赖性就不存在了。一个请求可能是一个POST,即使没有它,例如用Javascript提交表单通常也不会发送按钮。如果你阅读评论链,你会发现这不是这里的根本问题。@JensV-很好的捕获,完全错过了。V很容易被忽视。谢谢你,彼得完成了任务
<?php
session_start();
print_r($_SESSION['post-data']);
echo "<br>";
print_r($_SESSION);
?>
Array ( )
Array ( [post_data] => Array ( ) [post-data] => Array ( ) [favcolor] => green )
<?php
if (isset($_POST['inputName'])) {
session_start();
$_SESSION['post-data'] = $_POST;
header('location: zv.php');
}
?>
<form method="post" action="<?php echo $_SEVER['PHP_SELF']; ?>" >
Name:<br>
<input type="text" id="inputName" name="inputName">
<br>
Email:<br>
<input type="text" id="inputEmail" name="inputEmail">
<br>
Telephone Number:<br>
<input type="text" id="inputTel" name="inputTel">
<input type="submit" id="submit" value="Submit">
</form>