为页面输入创建会话并在最终页面提交

时间:2015-03-19 14:22:31

标签: php session session-cookies

我有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(),因为这将是处理此问题的最方便的方法,收集并将所有页面的输入发布到最终的php处理程序,在这种情况下是&#34; verNote.php&#34 ;

如果我能得到实际的解决方案,我也将不胜感激。

感谢。

3 个答案:

答案 0 :(得分:0)

在每个php页面中写下第一行

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

然后在此之后创建会话变量,如下所示:

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

稍后在您要访问此会话变量值的每个页面中,直接使用 $ _ SESSION ['sex'] 。 与<?php echo $_POST['sex'] ?>

一样

答案 1 :(得分:0)

使用Session,您不需要在每个页面的每种形式中存储相同的值(就像您正在使用&#34; sex&#34;)。使用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文件。

希望这会对你有所帮助。

答案 2 :(得分:0)

  • 试试这个,这里不需要 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>