Files
litianming 08ce60344d Initial commit: 心理咨询预约系统
PHP 前后端一体:首页咨询师列表、预约表单、管理后台、二维码准入与邮件通知;敏感配置与提交数据通过 .gitignore 排除。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 10:17:09 +08:00

4.3 KiB
Raw Permalink Blame History

心理咨询 H5

移动端心理咨询预约系统。纯 HTML/CSS/JS 前端 + PHP 后端,医生与议题由 JSON 配置,支持二维码准入与管理端数据导出。

功能

  • 首页展示可配置咨询师列表
  • 点击咨询师或「预约服务」进入咨询表单
  • 联系方式必填,咨询议题可选(配置于 data/topics.json
  • 提交记录本地存储,管理端登录后导出 CSV/JSON
  • 二维码访问控制URL 携带 access 令牌)

环境要求

  • PHP 7.4+(需开启 jsonsession 扩展)
  • 可写权限:data/ 目录

快速启动

cd 心理咨询
php -S 0.0.0.0:8080

浏览器访问:

页面 地址
首页(需带 token http://localhost:8080/index.html?access=你的accessToken
生成二维码 http://localhost:8080/qr.html
管理后台 http://localhost:8080/admin.html

默认管理账号:frankfrank / frankfrank(见 config/app.json

配置说明

详见 config/README.md

文件 用途
config/app.json 站点标题、访问令牌、管理账密、客服电话
data/doctors.json 咨询师列表
data/topics.json 咨询议题选项
assets/avatars/ 咨询师头像图片

部署前务必修改 config/app.json 中的 accessToken 为随机长字符串。

二维码访问

  1. 修改 accessToken 后访问 qr.html
  2. 扫描生成的二维码或分发链接(含 ?access=token
  3. 用户首次访问校验通过后,同浏览器 session 内可继续访问

说明:若用户复制完整链接仍可访问。如需更高安全性,可定期更换 token 并重新制码。

生产部署

Apache

  • 站点根目录指向本项目
  • 确保启用 mod_authz_core.htaccess 会禁止直接下载 data/submissions.json

Nginx

location ~ /data/submissions\.json$ {
    deny all;
}

确保 PHP-FPM 正常处理 .php 文件,data/ 目录对 PHP 进程可写。

提交无反应 / 提交失败排查

API 不会写死 localhost地址随当前访问域名自动计算。若点击提交无反应按下面检查

  1. 浏览器直接访问 https://你的域名/api/config.php

    • 应返回 JSON若 404 → api/ 目录未上传或站点根目录不对
    • 若下载文件 / 显示源码 → PHP 未启用,在宝塔里给站点选 PHP 版本
  2. data/ 目录可写(宝塔 → 文件 → 权限设为 755 或 775属主 www

    • 不可写时提交会提示「保存失败」
  3. 重新上传 最新的 js/api.jsjs/consult.js(旧版若初始化报错会导致提交按钮未绑定)

  4. F12 开发者工具 → Network,点提交看 submit.php 的请求 URL 是否为当前域名下的 /api/submit.php

  5. 须先通过二维码进入(或 URL 带 ?access=token),否则会被准入拦截

调试页面

部署后若提交异常,可访问(须带与二维码相同的 access 令牌

https://你的域名/debug.html?access=你的accessToken

功能环境检测、data 目录写权限、测试提交、测试邮件发送,并在页面底部输出详细日志。

提交成功但页面无反应:通常是发邮件耗时过长导致超时。现已改为「先返回成功、再后台发邮件」,请重新上传 api/submit.phpapi/mailer.phpjs/api.jsjs/consult.js

接口 方法 说明
api/config.php GET 公开配置
api/doctors.php GET 医生列表
api/topics.php GET 议题列表
api/submit.php POST 提交咨询
api/login.php POST 管理登录
api/logout.php POST 管理退出
api/check.php GET 检查登录状态
api/submissions.php GET 提交列表(需登录)
api/export.php GET 导出 ?format=csv|json(需登录)

目录结构

心理咨询/
├── index.html          # 首页
├── consult.html        # 预约表单
├── admin.html          # 管理后台
├── qr.html             # 二维码生成
├── api/                # PHP 接口
├── config/             # 系统配置
├── data/               # 业务数据
├── assets/             # 静态资源
├── css/                # 样式
└── js/                 # 脚本