Php 将表单post数据发送到会话变量

Php 将表单post数据发送到会话变量,php,Php,我有一个与表格,需要通过邮寄发送页面。 我的htaccess中有重定向,导致post数据丢失,因此我想将该数据放入会话变量中,以供另一个页面拾取 表单页面上下面的会话变量“favcolor”仅作为测试仪存在。 第二页上的输出应该显示表单中的数据,但不是。这是一个空数组。但它显示的颜色变量是ok 我已经将代码缩减到最简单的几行来测试它,但无法让它工作。有人能帮我指出正确的方向吗 表格页: <?php session_start(); $_SESSION['post-data'

我有一个与表格,需要通过邮寄发送页面。 我的htaccess中有重定向,导致post数据丢失,因此我想将该数据放入会话变量中,以供另一个页面拾取

表单页面上下面的会话变量“favcolor”仅作为测试仪存在。 第二页上的输出应该显示表单中的数据,但不是。这是一个空数组。但它显示的颜色变量是ok

我已经将代码缩减到最简单的几行来测试它,但无法让它工作。有人能帮我指出正确的方向吗

表格页:

<?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>