表单提交后如何保留上一页的PHP变量

时间:2019-11-14 07:24:14

标签: php mysql variables session

我正在创建一个php网站,人们可以在此获得有关其作业的帮助。第一步,用户注册自己,或者如果他们已经有一个帐户,他们将登录并被重定向到另一个页面,他们可以在其中创建有关分配的订单。数据库中有两个表。一种是userinfo,用于保存注册信息的UserID(自动递增),名称,电子邮件,密码等。

另一个表是“订单信息”,其中包含有关分配的详细信息。我已将这些表与用户ID链接为订单信息表中的外键。我通过帖子将登录信息带到下一页,用户在其中输入订单信息,然后我想在订单信息表中提交数据以及外键userid。

<?php
$conn = new mysqli('localhost', 'root', '', 'db' ); 
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$email=$_POST['email'] ; //from previous login page

$getid="SELECT UserID,Name from userinfo WHERE email = '$email' ";
$result = $conn->query($getid);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $id= $row["UserID"];
    }
}

if(isset($_POST['submit'])){ 
    $id= $_SESSION['id'];
    $type= $_POST['type'];
    $level= $_POST['level'];
    $subject= $_POST['subject'];
    $topic= $_POST['topic'];
    $page= $_POST['page'];
    $detail= $_POST['detail'];
    $day= $_POST['day'];
    $refer= $_POST['refer'];
    $referstyle= $_POST['referstyle'];
    $sql="INSERT INTO OrderInfo (UserID, PaperType, AcademicLevel, Subject, Topic, Detail, Pages, Referrence, ReferrenceStyle, Urgency) 
    VALUES ('$id','$type', '$level', '$subject','$topic','$detail', '$page','$refer', '$referstyle',  '$day' )";

    if ($conn->query($sql) === TRUE ) {
        echo   "";
    } 
    else {
        echo " <br>Error: "  . "<br>" . $conn->error;
    }  
}
?>

但是问题是当我单击“提交”时,先前的值将被删除,并且显示未定义的索引“ email”错误,并且数据未插入orderinfo表中。提交表单后如何保存$ email和$ id变量?我已经尝试过使用Sessions,但是也没有用。

1 个答案:

答案 0 :(得分:1)

您可以使用session

1)在首页中,提交第一份表格后,将email值存储在session中,如下所示

<?php session_start();
$_SESSION['email'] = $_POST['email'];
?>

2)在第二页中,您必须启动会话并像这样访问会话变量

<?php session_start();

$email = $_SESSION['email']; //from previous login page
// And remaining code here ....
?>