紅顏莎娜
2023-06-29 15:49:22
當(dāng)我嘗試從登錄頁(yè)面(index.php)加載上面的 php 頁(yè)面時(shí),沒(méi)有錯(cuò)誤,但是當(dāng)我登錄后嘗試從應(yīng)用程序中的任何其他頁(yè)面加載它時(shí),它在控制臺(tái)上給我一個(gè)未捕獲的語(yǔ)法錯(cuò)誤。它指向腳本并表示 php 變量 $name 未定義。<?phpif (isset($_POST["login"])) {session_start();$_SESSION["email"] = $_POST["email"];$email = $_POST["email"];$password = $_POST["password"];$dbhost = 'localhost';$dbuser = 'root';$dbpass = '';$dbname = 'attendance_system';$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);if ($conn->connect_error) { die("Failed to connect: " . $conn->connect_error);} else { $success = false; $query = "SELECT * FROM student"; $result = $conn->query($query); while ($row = $result->fetch_assoc()) { if ($row["email"] === $email && $row["password"] === $password) { $name = $row["name"]; $age = $row["age"]; $criteria = $row["attendance_criteria"]; $course = $row["course"]; $college = $row["college_name"]; $attendance = $row["attendance"]; $success = true; break; } } if ($success === false) { header("Location: index.php"); }}}if (isset($_POST["signup"])) {session_start();$_SESSION["email"] = $_POST["email1"];$email = $_POST["email1"];$password = $_POST["password1"];$name = $_POST["name"];$age = $_POST["age"];$criteria = 100;$course = null;$college = null;$attendance = 0;$dbhost = 'localhost';$dbuser = 'root';$dbpass = '';$dbname = 'attendance_system';$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);if ($conn->connect_error) { die("Failed to connect: " . $conn->connect_error);} else { $query = "INSERT INTO student SET email = '$email', name = '$name', age = '$age', password = '$password' "; $result = $conn->query($query);}}?><!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><title>Attendance Manager - Home</title><link rel="stylesheet" href="../css/skeleton.css"><link rel="stylesheet" href="../css/home.css"><link rel="icon" type="image/jpg" href="../media/icon.png"></head>
1 回答

瀟湘沐
TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果您的頁(yè)腳<script>
始終運(yùn)行并且始終期望$name
被填充,那么您必須檢查會(huì)話是否已登錄。如果未登錄,請(qǐng)將用戶重定向到登錄頁(yè)面,或指定默認(rèn)值。
另外,您可能應(yīng)該重寫(xiě)用于驗(yàn)證用戶身份的 SQL。首先,將密碼保存為哈希值。其次,使用WHERE
語(yǔ)句來(lái)獲取與電子郵件和密碼匹配的任何行,而不是循環(huán)訪問(wèn)應(yīng)用程序中的結(jié)果。
您可能還想修復(fù)var pasword
拼寫(xiě)錯(cuò)誤,我建議您將$success
變量重命名為更具描述性的名稱,例如$loggedIn
. 對(duì)于這個(gè)特定目的來(lái)說(shuō),這可能并不重要,但養(yǎng)成正確命名變量的習(xí)慣是一件好事。
添加回答
舉報(bào)
0/150
提交
取消