【问题标题】:How to keep php variables from previous page after form submit表单提交后如何保留上一页的php变量
【发布时间】:2019-11-19 20:26:23
【问题描述】:

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

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

<?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,但它也不起作用。

【问题讨论】:

标签: php mysql variables session


【解决方案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 ....
?>

【讨论】:

  • 这个解决方案在 localhost 中完美运行,但在 cpanel 站点中却不行。代码是一样的
  • 它只是没有将值传递到下一页。我已经检查了一切。名称,语法一切都是正确的,但它不起作用
猜你喜欢
  • 2014-09-21
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多