08ce60344d092cb5cecfee7530f14590cc4fb145
PHP 前后端一体:首页咨询师列表、预约表单、管理后台、二维码准入与邮件通知;敏感配置与提交数据通过 .gitignore 排除。 Co-authored-by: Cursor <cursoragent@cursor.com>
心理咨询 H5
移动端心理咨询预约系统。纯 HTML/CSS/JS 前端 + PHP 后端,医生与议题由 JSON 配置,支持二维码准入与管理端数据导出。
功能
- 首页展示可配置咨询师列表
- 点击咨询师或「预约服务」进入咨询表单
- 联系方式必填,咨询议题可选(配置于
data/topics.json) - 提交记录本地存储,管理端登录后导出 CSV/JSON
- 二维码访问控制(URL 携带
access令牌)
环境要求
- PHP 7.4+(需开启
json、session扩展) - 可写权限:
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/app.json |
站点标题、访问令牌、管理账密、客服电话 |
data/doctors.json |
咨询师列表 |
data/topics.json |
咨询议题选项 |
assets/avatars/ |
咨询师头像图片 |
部署前务必修改 config/app.json 中的 accessToken 为随机长字符串。
二维码访问
- 修改
accessToken后访问qr.html - 扫描生成的二维码或分发链接(含
?access=token) - 用户首次访问校验通过后,同浏览器 session 内可继续访问
说明:若用户复制完整链接仍可访问。如需更高安全性,可定期更换 token 并重新制码。
生产部署
Apache
- 站点根目录指向本项目
- 确保启用
mod_authz_core,.htaccess会禁止直接下载data/submissions.json
Nginx
location ~ /data/submissions\.json$ {
deny all;
}
确保 PHP-FPM 正常处理 .php 文件,data/ 目录对 PHP 进程可写。
提交无反应 / 提交失败排查
API 不会写死 localhost,地址随当前访问域名自动计算。若点击提交无反应,按下面检查:
-
浏览器直接访问
https://你的域名/api/config.php- 应返回 JSON;若 404 →
api/目录未上传或站点根目录不对 - 若下载文件 / 显示源码 → PHP 未启用,在宝塔里给站点选 PHP 版本
- 应返回 JSON;若 404 →
-
data/目录可写(宝塔 → 文件 → 权限设为 755 或 775,属主www)- 不可写时提交会提示「保存失败」
-
重新上传 最新的
js/api.js、js/consult.js(旧版若初始化报错会导致提交按钮未绑定) -
F12 开发者工具 → Network,点提交看
submit.php的请求 URL 是否为当前域名下的/api/submit.php -
须先通过二维码进入(或 URL 带
?access=token),否则会被准入拦截
调试页面
部署后若提交异常,可访问(须带与二维码相同的 access 令牌):
https://你的域名/debug.html?access=你的accessToken
功能:环境检测、data 目录写权限、测试提交、测试邮件发送,并在页面底部输出详细日志。
提交成功但页面无反应:通常是发邮件耗时过长导致超时。现已改为「先返回成功、再后台发邮件」,请重新上传 api/submit.php、api/mailer.php、js/api.js、js/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/ # 脚本
Description
Languages
PHP
52.2%
CSS
27%
JavaScript
19.3%
HTML
1.5%