2026-04-21 03:55:52
要实现用户登录、学生选课、教师增加新课等功能,需要结合HTML、CSS、PHP和数据库技术。以下是实现这些功能的关键步骤和代码示例:
1. 用户登录功能HTML部分(登录表单)<!DOCTYPE html><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>用户登录</title> <link rel="stylesheet" href="./hongyu/default.css"></head><body> <div class="login-container"> <h2>用户登录</h2> <form action="login.php" method="post"> <div class="form-group"> <label for="email">邮箱:</label> <input type="email" id="email" name="email" required> </div> <div class="form-group"> <label for="password">密码:</label> <input type="password" id="password" name="password" required> </div> <button type="submit">登录</button> </form> </div></body></html>PHP部分(登录验证)<?phpinclude("connexion.php");if ($_SERVER["REQUEST_METHOD"] == "POST") { $adEmail = $_POST['email']; $password = $_POST['password']; $sql = "SELECT * FROM user WHERE email = ?"; $res = $pdo->prepare($sql); $res->execute([$adEmail]); $user = $res->fetch(PDO::FETCH_ASSOC); if ($user && password_verify($password, $user['password'])) { session_start(); $_SESSION['user_id'] = $user['id']; $_SESSION['user_role'] = $user['identite']; if ($user['identite'] == 'admin') { header('Location: ../../hongyu/profil/pageProfil_admin.php'); } elseif ($user['identite'] == 'etudiant') { header('Location: ../../hongyu/profil/pageProfil_etudiant.php'); } elseif ($user['identite'] == 'professeur') { header('Location: ../../hongyu/profil/pageProfil_professeur.php'); } exit(); } else { echo "邮箱或密码错误"; }}?>2. 学生选课功能HTML部分(选课表单)<!DOCTYPE html><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>学生选课</title> <link rel="stylesheet" href="./hongyu/default.css"></head><body> <div class="course-selection-container"> <h2>选课</h2> <form action="select_course.php" method="post"> <div class="form-group"> <label for="course">选择课程:</label> <select id="course" name="course_id" required> <?php include("connexion.php"); $sql = "SELECT * FROM courses"; $res = $pdo->query($sql); while ($course = $res->fetch(PDO::FETCH_ASSOC)) { echo "<option value='{$course['id']}'>{$course['name']}</option>"; } ?> </select> </div> <button type="submit">选课</button> </form> </div></body></html>PHP部分(选课处理)<?phpsession_start();include("connexion.php");if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] != 'etudiant') { header('Location: login.php'); exit();}if ($_SERVER["REQUEST_METHOD"] == "POST") { $course_id = $_POST['course_id']; $student_id = $_SESSION['user_id']; $sql = "INSERT INTO student_courses (student_id, course_id) VALUES (?, ?)"; $res = $pdo->prepare($sql); $res->execute([$student_id, $course_id]); header('Location: pageProfil_etudiant.php'); exit();}?>3. 教师增加新课功能HTML部分(增加课程表单)<!DOCTYPE html><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>增加新课</title> <link rel="stylesheet" href="./hongyu/default.css"></head><body> <div class="add-course-container"> <h2>增加新课</h2> <form action="add_course.php" method="post"> <div class="form-group"> <label for="course_name">课程名称:</label> <input type="text" id="course_name" name="course_name" required> </div> <div class="form-group"> <label for="course_description">课程描述:</label> <textarea id="course_description" name="course_description" required></textarea> </div> <button type="submit">增加课程</button> </form> </div></body></html>PHP部分(增加课程处理)<?phpsession_start();include("connexion.php");if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] != 'professeur') { header('Location: login.php'); exit();}if ($_SERVER["REQUEST_METHOD"] == "POST") { $course_name = $_POST['course_name']; $course_description = $_POST['course_description']; $sql = "INSERT INTO courses (name, description) VALUES (?, ?)"; $res = $pdo->prepare($sql); $res->execute([$course_name, $course_description]); header('Location: pageProfil_professeur.php'); exit();}?>4. 数据库连接(connexion.php)<?php$host = 'localhost';$dbname = 'etudiant';$username = 'root';$password = 'root';try { $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);} catch (PDOException $exc) { echo $exc->getMessage(); exit();}?>5. CSS部分(default.css)body { font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;}.login-container, .course-selection-container, .add-course-container { width: 300px; margin: 100px auto; padding: 20px; background-color: #fff; border-radius: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);}.form-group { margin-bottom: 15px;}label { display: block; margin-bottom: 5px;}input[type="email"],input[type="password"],input[type="text"],select,textarea { width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box;}button { width: 100%; padding: 10px; background-color: #5cb85c; border: none; border-radius: 4px; color: white; font-size: 16px; cursor: pointer;}button:hover { background-color: #4cae4c;}总结通过以上步骤,可以实现一个基本的用户登录、学生选课和教师增加新课的系统。