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

时间:2019-03-22 12:23:55

标签: php

我有一个页面,其中的表单需要通过邮寄发送。 我的htaccess重定向到其中,导致帖子数据丢失,因此我想将该数据放入会话变量中,以供其他页面使用。

下面的表单页面上的会话变量“ favcolor”只是一个测试器。 第二页上的输出应显示表单中的数据,但不是。这是一个空数组。它显示的颜色变量还可以。

我已经在这里将代码切回到最简单的几行以进行测试,并且无法使其正常工作。有人可以帮我指出正确的方向吗?

表单页面:

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

第二页(zv.php):

<?php
    session_start();
    print_r($_SESSION['post-data']);
    echo "<br>";
    print_r($_SESSION);
?>

第二页(zv.php)的输出:

Array ( )
Array ( [post_data] => Array ( ) [post-data] => Array ( ) [favcolor] => green )

2 个答案:

答案 0 :(得分:-1)

仅当您有发布请求时,才需要设置它($ _SESSION ['post-data'] = $ _POST)。

<?php
    session_start();
    if (isset($_POST['Submit'])) {
      $_SESSION['post-data'] = $_POST; 
      header('location: zv.php');
    }
?>
    <form action="<?=$_SEVER['PHP_SELF']?>" 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>

然后,您可以在第二页中访问会话数据。

答案 1 :(得分:-1)

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