我正在创建一个php网站,人们可以在这里获得作业帮助。在第一步中,用户自己注册,或者如果他们已经有了帐户,他们将登录并重定向到另一个页面,在那里他们可以创建关于分配的订单。数据库中有两个表。一个是用户信息,其中保存注册信息UserID(自动递增(、姓名、电子邮件、密码等。
另一个表格是订单信息,其中包括有关分配的详细信息。我已经用userid作为订单信息表中的外键链接了这些表。我通过post将登录信息带到下一个页面,用户在那里输入订单信息,然后我想提交订单信息表中的数据和外键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;
}
}
?>
但问题是,当我点击提交时,以前的值会被删除,并显示未定义的索引"电子邮件"错误,并且数据不会插入orderinfo表中。如何在表单提交后保留$email和$id变量?我尝试过使用会话,但也不起作用。
您可以使用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 ....
?>