PHP打造在线家教预约系统

admin 2025-01-14 268 0

在这个数字化时代,在线教育已成为趋势。为了满足家长和学生便捷预约家教的需求,本文将详细介绍如何用PHP开发一个在线家教预约系统。

PHP打造在线家教预约系统

系统需求分析

首先,明确系统需求:

  1. 用户注册登录:家长和学生可以注册账号并登录。
  2. 家教信息展示:展示家教的基本信息、教学科目和评价。
  3. 预约功能:用户可预约特定时间的家教课程。
  4. 通知系统:预约成功后,双方收到通知。
  5. 评价系统:课程结束后,用户可对家教进行评价。

技术栈选择

  • 后端:PHP + MySQL
  • 前端:HTML + CSS + JavaScript
  • 框架:可选使用Laravel或CodeIgniter简化开发

数据库设计

设计以下主要表结构:

  1. users:存储用户信息

    • id, username, password, role (家长/学生/家教)
  2. tutors:存储家教信息

    • id, user_id, subject, bio, rating
  3. appointments:存储预约信息

    • id, user_id, tutor_id, datetime, status
  4. reviews:存储评价信息

    • id, user_id, tutor_id, rating, comment

后端实现

用户注册登录

使用PHP处理用户注册和登录请求,密码使用md5或更安全的bcrypt加密。

// 注册用户
if ($_POST['action'] == 'register') {
    $username = $_POST['username'];
    $password = md5($_POST['password']);
    $role = $_POST['role'];

    $query = "INSERT INTO users (username, password, role) VALUES ('$username', '$password', '$role')";
    mysqli_query($conn, $query);
}

// 登录用户
if ($_POST['action'] == 'login') {
    $username = $_POST['username'];
    $password = md5($_POST['password']);

    $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $result = mysqli_query($conn, $query);
    $user = mysqli_fetch_assoc($result);

    if ($user) {
        $_SESSION['user'] = $user;
    }
}

家教信息展示

查询家教信息并返回JSON数据供前端展示。

// 获取家教列表
if ($_GET['action'] == 'getTutors') {
    $query = "SELECT * FROM tutors";
    $result = mysqli_query($conn, $query);
    $tutors = mysqli_fetch_all($result, MYSQLI_ASSOC);

    echo json_encode($tutors);
}

预约功能

处理用户预约请求,并插入预约记录。

// 预约家教
if ($_POST['action'] == 'appoint') {
    $user_id = $_SESSION['user']['id'];
    $tutor_id = $_POST['tutor_id'];
    $datetime = $_POST['datetime'];

    $query = "INSERT INTO appointments (user_id, tutor_id, datetime, status) VALUES ('$user_id', '$tutor_id', '$datetime', 'pending')";
    mysqli_query($conn, $query);
}

前端实现

使用HTML表单收集用户输入,JavaScript处理异步请求。

<!-- 注册表单 -->
<form id="registerForm">
    <input type="text" name="username" placeholder="用户名">
    <input type="password" name="password" placeholder="密码">
    <select name="role">
        <option value="student">学生</option>
        <option value="parent">家长</option>
    </select>
    <button type="submit">注册</button>
</form>

<script>
document.getElementById('registerForm').addEventListener('submit', function(e) {
    e.preventDefault();
    var formData = new FormData(this);
    formData.append('action', 'register');

    fetch('api.php', {
        method: 'POST',
        body: formData
    }).then(response => response.json())
      .then(data => console.log(data));
});
</script>

通知系统

使用邮件或短信API通知用户预约成功。

// 发送通知
if ($_POST['action'] == 'sendNotification') {
    $user_email = $_POST['user_email'];
    $message = "您的预约已成功!";

    mail($user_email, "预约通知", $message);
}

评价系统

课程结束后,用户可提交评价。


// 提交评价
if ($_POST['action'] == 'review') {
    $user_id = $_SESSION['user']['id'];
    $tutor_id = $_POST['tutor_id

评论(0)