在PHP中保持页面之间的会话?

时间:2012-08-03 07:52:44

标签: php mysql forms session

我是PHP的新手。

我想在页面之间传输数据。

根据我的要求,我首先拥有主页,因为我有3个字段:名称地址 pin 然后提交按钮

当我输入上述字段然后点击提交时,它会移至page2.php,它有表单数据。

我已将第一张表格数据转移到第二页。现在在第二页我有一个提交按钮。当我点击该按钮时,数据将被提交到MySQL数据库。

我的问题是,如何将首页值移至insertdata.php页并提交数据?

5 个答案:

答案 0 :(得分:5)

有两种方法可以做到这一点

  1. 会话
  2. 隐藏的输入字段
  3. 会话

    要将数据从一个页面传递到另一个页面,首先需要在将要使用session_start()超全局变量的所有页面上调用$_SESSION。 然后,您可以使用

    将值存储在会话中
    $_SESSION['name'] = $_POST['name'];
    $_SESSION['address'] = $_POST['address'];
    $_SESSION['pin'] = $_POST['pin'];
    

    要在第二页中使用这些值,只需按名称调用它们即可。例如:

    $name = $_SESSION['name']; // will contain the value entered in first page
    

    =============================================== ===================================

    隐藏的输入字段

    这更多是一种乏味的方法,但它确实完成了这项工作。该过程涉及将需要传递的数据存储到隐藏字段中的不同页面,然后通过$_POST$_GET超全局访问它们。

    page1.php (发布到page2.php)

    <input type="text" value="Page 1 content" name="content" />
    <input type="text" value="Page 1 body" name="body" />
    

    page2.php (发布到page3.php)

    <input type="hidden" value="<?php echo $_POST['content']; ?>" name="content" />
    <input type="hidden" value="<?php echo $_POST['body']; ?>" name="body" />
    <input type="text" value="Page 2 content" name="content2" />
    <input type="text" value="Page 2 body" name="body2" />
    

    <强> page3.php

    echo $_POST['content']; // prints "Page 1 content"
    echo $_POST['body']; // prints "Page 1 body"
    echo $_POST['content2']; // prints "Page 2 content"
    echo $_POST['body2']; // prints "Page 2 body"
    

答案 1 :(得分:1)

只需在首页<?php session_start(); ?>中使用以下代码 并在您的第二页中使用以下代码

<?php
$name = $_SESSION['name'];
$address = $_SESSION['address'];
$pin = $_SESSION['pin'];
echo $name."<br/>";
echo $address."<br/>";
echo $pin."<br/>";
?>

或者您可以使用postget方法,如下所示

对于GET方法

<?php
$name = $_GET['name'];
$address = $_GET['address'];
$pin = $_GET['pin'];
echo $name."<br/>";
echo $address."<br/>";
echo $pin."<br/>";
?>

对于POST METHOD

    <?php
    $name = $_POST['name'];
    $address = $_POST['address'];
    $pin = $_POST['pin'];
    echo $name."<br/>";
    echo $address."<br/>";
    echo $pin."<br/>";
    ?>

答案 2 :(得分:0)

REQUEST类似,PHP维护会话映射,您可以在其中转储这些值以及跨页面。 e.g。

$_SESSION['name']='foo';

但是您想要使用会话的页面,您需要使用方法session_start();启动会话。但是这个方法调用应该是你php中的第一行。

http://www.w3schools.com/php/php_sessions.asp

答案 3 :(得分:0)

要在页面更改之间存储数据,可以使用超全局$ _SESSION数组。

实施例

Page 1

$_SESSION['name'] = "John";

第2页

echo $_SESSION['name'];

<强>输出

John

确保将session_start()放在需要使用会话的每个页面的顶部。

Click here for more information on Sessions.

答案 4 :(得分:0)

基本上,当您在第一页中提交数据时,将它们保存在会话中,然后重定向到第二页。

在第二页中加载它们。

第1页:

<?php session_start(); 

     $_SESSION["var_name"]  = $some_value;


?>

第2页:

<?php session_start(); 

     $my_var = $isset($_SESSION["var_name"])?$_SESSION["var_name"]:null;




?>

你测试my_var的值,如果它是空的,那么重定向到第一页或显示错误信息。

会话教程 http://www.w3schools.com/php/php_sessions.asp

Mysql插入教程 http://www.tizag.com/mysqlTutorial/mysqlinsert.php

POST / GET教程 http://www.tizag.com/phpT/postget.php