在 php 中遇到会话和页面问题


Having problems with sessions and pages in php

我真的不明白我在这里做什么。我有这个页面profesor.php我想在其中将一些数据插入数据库。从表单提交数据后,我希望被重定向到另一个页面insert.php并显示一条消息。所以我有profesor.php

<?php
session_start();
if (isset($_SESSION['id'])) {
    $fullname = $_SESSION['name'];
    echo "<h1> Welcome " . $fullname . "</h1>"; 
} else {
    $result = "You are not logged in yet";
}
if (isset($_POST['studname'])) {
    include_once("dbConnect.php");
    $studname = strip_tags($_POST['studname']);
    $course = strip_tags($_POST['course']);
    $grade = strip_tags($_POST['grade']);
    $getStudidStm = "SELECT userid FROM users WHERE name = '$studname'";
    $getStudidQuery = mysqli_query($dbCon, $getStudidStm);
    $row = mysqli_fetch_row($getStudidQuery);
    $studid = $row[0]; 
    $_SESSION['studid'] = $studid;
    $_SESSION['course'] = $course;
    $_SESSION['grade'] = $grade;
    header("Location: insert.php");
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php echo $fullname ;?></title>
</head>
<body>
<div id="wrapper">
<h2>Insert new grade</h2>
<form id="insertForm" action="insert.php" method="post" enctype="multipart/form-data">
Student: <input type="text" name="studname" /> <br />
Course : <input type="text" name="course" /> <br />
Grade  : <input type="text" name="grade" /> <br />
<input type="submit" value="Insert" name="Submit" />
</form></div>
</form>
</body>
</html>

insert.php

<?php
session_start();
if (isset($_SESSION['studid'])) {
    include_once("dbConnect.php");
    $studid = $_SESSION['studid'];
    $course = $_SESSION['course'];
    $grade = $_SESSION['grade'];
    echo $studid;
    echo $course;
    echo $grade;
}

我的问题是insert.php不显示任何内容。我真的不明白我做错了什么。需要一些帮助。

你的问题出在你的形式上:

<form id="insertForm" action="insert.php" [...]

您向insert.php发送数据,但所有的"魔力"

$_SESSION['studid'] = $studid;
$_SESSION['course'] = $course;
$_SESSION['grade'] = $grade;

你保持profesor.php

只需将action="insert.php"更改为action="profesor.php",它应该可以正常工作。