我正在创建一个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,但是也没有用。
答案 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 ....
?>