【问题标题】:PHP Session not passing multiple post form data through multiple pagesPHP Session没有通过多个页面传递多个post表单数据
【发布时间】:2017-06-08 15:52:34
【问题描述】:

我正在尝试从用户那里获取表单输入,并将该信息传递到具有另一个表单的另一个页面,然后再次获取输入并将之前的数据传递到另一个页面,该页面将显示来自两个表单的输入。

在第一页,用户将输入信息,点击提交,然后打开第二页,该页将显示他们从第一页输入的内容并要求他们输入更多信息。他们将在第二页输入信息,然后再次单击提交,这将把他们带到第三页,显示他们从前几页输入的所有信息。

当我运行我的代码时,它不会将表单中的 post 值带到下一页。

我知道有很多关于此类问题的问题,但我查看并尝试的所有答案都没有解决我的问题。

这是我的代码:

page1.php

<?php
session_start();
echo 'session id: ';
echo session_id();
$_SESSION['test1'] = $_POST['test1'];
?>

<html>
<body>
    <p>Page 1 Form</p>
    <form action="page2.php" method="post">
        <input type="text" name="test1"/>
        <input type="submit" name="submit1" value="Submit!" />
    </form>
</body>
</html>

page2.php

<?php
session_start();
echo 'page2.php<br />';
echo 'session id: ';
echo session_id();
echo '<br />';
echo 'input from page1.php: ';
echo $_SESSION['test1'];
$_SESSION['test2'] = $_POST['test2'];
?>

<html>
<body>
    <p>Page 2 Form</p>
        <form action="page3.php" method="post">
            <input type="text" name="test2"/>
            <input type="submit" name="submit2" value="Submit!" />
        </form>
</body>
</html>

page3.php

<?php
session_start();
echo 'page3.php<br />'
echo 'session id: ';
echo session_id();
echo '<br />';
echo $_SESSION['test1'];
echo $_SESSION['test2'];
?>

【问题讨论】:

    标签: php forms session


    【解决方案1】:

    $_POST['test1'] 永远不会被读取,因为page1.php 提交给page2.php,而page2.php 读取test2

    此外,如果您只是在发布数据,则不需要使用会话。你可以这样做:

    page1.php

    <html>
    <body>
        <p>Page 1 Form</p>
        <form action="page2.php" method="post">
            <input type="text" name="test1"/>
            <input type="submit" name="submit1" value="Submit!" />
        </form>
    </body>
    </html>
    

    page2.php

    <html>
    <body>
        <p>Page 2 Form</p>
            <form action="page3.php" method="post">
                <input type="hidden" name="test1" value="<?php echo htmlspecialchars($_POST["test1"]);?>"/>
                <input type="text" name="test2"/>
                <input type="submit" name="submit2" value="Submit!" />
            </form>
    </body>
    </html>
    

    page3.php

    <?php
    echo 'page3.php<br />'
    var_dump($_POST["test1"]);
    var_dump($_POST["test2"]);
    ?>
    

    【讨论】:

      【解决方案2】:

      您应该在解析值之后输入值。 我认为你有一个空会话是因为,

      1. $_SESSION['test1'] = $_POST['test1'];
      

      但是您的操作转到“page2.php”,并且您在提交表单之前输入会话,因此您得到一个空值,更好的方法是您应该在 page2.php 上输入 $_SESSION['test1']

      2. $_SESSION['test2'] = $_POST['test2'];
      

      您的操作转到“page3.php”,您应该在 page3.php 上填写 $_SESSION['test2']

      所以,完整的代码应该是这样的。

      第 1 页

      <?php
      session_start();
      echo 'session id: ';
      echo session_id();
      ?>
      
      <html>
      <body>
          <p>Page 1 Form</p>
          <form action="page2.php" method="post">
              <input type="text" name="test1"/>
              <input type="submit" name="submit1" value="Submit!" />
          </form>
      </body>
      </html>
      

      第 2 页

      <?php
      session_start();
      echo 'page2.php<br />';
      echo 'session id: ';
      echo session_id();
      echo '<br />';
      echo 'input from page1.php: '.$_POST['test1'];
      $_SESSION['test1'] = $_POST['test1'];
      ?>
      
      <html>
      <body>
          <p>Page 2 Form</p>
              <form action="page3.php" method="post">
                  <input type="text" name="test2"/>
                  <input type="submit" name="submit2" value="Submit!" />
              </form>
      </body>
      </html>
      

      第 3 页

      <?php
      session_start();
      echo 'page3.php<br />'
      echo 'session id: ';
      echo session_id();
      echo '<br />';
      $_SESSION['test2'] = $_POST['test2'];
      echo $_SESSION['test1'];
      echo $_SESSION['test2'];
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-28
        • 2020-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-23
        • 1970-01-01
        相关资源
        最近更新 更多