为页面输入创建一个会话并在最后一页提交

Create a session for a page input and submit at final page

我有 4 页 第 1 页有一个带有输入的表单 第 2 页没有形式,但重定向 第 3 页有一个带有输入的表单 第 4 页有一个带有输入的表单。

已编辑 -(添加代码)

Page 1
<form action="page2" method="POST">
    <input type="text" name="sex">
    <input type="submit" value="Submit">
</form>

Page 2
    <?php require_once 'detect.php'; ?>
    <input type="text" name="size">
    <input type="hidden" name="sex" value="<?php echo $_POST['sex'] ?>" >
    <script type="text/JavaScript">
    <!--
    setTimeout("location.href = 'page4';",5000);
     -->
    </script>

Page 3
<form action="page4" method="POST">
    <input type="text" name="colors">
    <input type="hidden" name="sex" value="<?php echo $_POST['sex'] ?>" >
    <input type="submit" value="Submit">
</form>

Page 4
<form action="verNote.php" method="POST">
    <input type="text" name="likes">
    <input type="hidden" name="sex" value="<?php echo $_POST['sex'] ?>" >
    <input type="hidden" name="colors" value="<?php echo $_POST['colors'] ?>" >    <input type="submit" value="Submit">
</form>

我正在考虑使用 session(),因为它是处理此问题的最便捷方式,可以收集所有页面的输入并将 post 输入到最终的 php 处理程序,在这种情况下是 "verNote.php".

如果我能找到一个切实可行的解决方案,我将不胜感激。

谢谢。

在每 php 页写第一行

session_start(); // this must be the first line of every page in php

然后在这之后,创建会话变量如下:

$_SESSION['sex']=<variable_name_to_store> ;

以后在每个要访问这个session变量值的页面,直接使用$_SESSION['sex']。 喜欢<?php echo $_POST['sex'] ?>

使用 Session,您不需要在每个页面的每个表单中存储相同的值(就像您对 "sex" 所做的那样)。使用 Session,您将值存储一次并保留在那里。现在举个例子。

页面1向页面2发送数据,需要一个中间脚本从输入表单中获取值并将其存储在Session中。下一个代码是一个例子。

page1.php(将值发送到第 2 页)。

<?php
session_start();
?>
<html>
  <head>
    <title>Session</title>
  </head>
  <body>
    Welcome to page 1.
    <br/>
    <br/>
    <form method="post" action="middle.php">
      Type anything
      <input type="text" name="anything" />
      <input type="submit" value="Send value to page 2" />
    </form>
  </body>
</html>

middle.php(从第 1 页获取值并将其存储在会话中)

<?php
session_start();
if ( IsSet( $_POST[ "anything" ] ) )
     { $_SESSION[ "anything" ] = $_POST[ "anything" ];
       header( "Location: page2.php" );
     }
else header( "Location: page1.php" );
?>

page2.php(显示从第 1 页收到的值)

<?php
session_start();
?>
<html>
  <head>
    <title>Session</title>
  </head>
  <body>
    Welcome to page 2.
    <br/>
    <br/>
    This is the value from page 1 :
    <input type="text" value="<?php echo $_SESSION["anything"];?>" />
  </body>
</html>

Ruse Yee,创建 3 个文本文件并将它们命名为 page1.php、middle.php 和 page2.php,将适当的代码复制并粘贴到其中并 运行 page1.php 从您的浏览器:

http://localhost/page1.php

您可以根据需要添加端口:

http://localhost:80/page1.php

如果您有更多页面和发送更多数据的表单,那么您将需要更多 middle.php 个文件。

希望对您有所帮助。

  • 试试这个,这里不需要middle.php

page1.php

<?php
session_start();

if ( isset( $_POST[ "anything" ] ) ){ 
  $_SESSION[ "anything" ] = $_POST[ "anything" ]; // by this value from the form are stored in $_SESSION[ "anything" ]
  header( "Location: page2.php" );
}

else header( "Location: page1.php" );

?>
<html>
  <head>
    <title>Session</title>
  </head>
  <body>
    Welcome to page 1.
    <br/>
    <br/>
    <form method="post" action="page1.php">
      Type anything
      <input type="text" name="anything" />
      <input type="submit" value="Send value to page 2" />
    </form>
  </body>
</html>

page2.php

<?php
session_start();
?>
<html>
  <head>
    <title>Session</title>
  </head>
  <body>
    Welcome to page 2.
    <br/>
    <br/>
    This is the value from page 1 :
    <input type="text" value="<?php echo $_SESSION['anything'];?>" />
  </body>
</html>