# yidati **Repository Path**: yu-jianyue/yidati ## Basic Information - **Project Name**: yidati - **Description**: 易答题是一个基于PHP和MySQL的简易内部答题系统,采用原生HTML5+CSS3+Ajax开发,界面简洁美观,适合手机访问。 支持简单题型比如单选,多选。支持用户登录答题、管理员管理用户和查看答题记录等功能。 适合有一定json及编程经验人员使用:根据题目编辑试题json放对应文件夹(ku)下的能力。 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-21 - **Last Updated**: 2025-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: 答题系统, 调查系统, 考试系统 ## README ===================================================== 易答题 PHP+MySQL 简易内部答题系统 ===================================================== 【系统简介】 本系统是一个基于PHP和MySQL的简易内部答题系统,采用原生HTML5+CSS3+Ajax开发,界面简洁美观,适合手机访问。 支持简单题型比如单选,多选。支持用户登录答题、管理员管理用户和查看答题记录等功能。 适合有一定json及编程经验人员使用:根据题目编辑试题json放对应文件夹(ku)下的能力。 首发版本未经实战,仅供学习参考。 【主要功能】 1. 学生端功能: - 用户登录/退出 - 输入考试ID开始答题 - 在线答题(支持判断题、单选题、多选题) - 答题进度实时保存 - 答题记录查看 - 修改密码 2. 管理员功能: - 管理员登录/退出 - 用户列表管理(查询、删除、批量删除、重置密码) - 用户批量导入 - 答题记录查看(查看详细答题情况) - 答题数据下载(TSV格式) - 修改密码 【环境要求】 - PHP 7.0 或以上版本 - MySQL 5.6 或以上版本 - 支持MySQLi扩展 - 支持GD库(验证码功能) - 支持Session 【安装步骤】 1. 将所有文件上传到服务器 2. 修改 inc/conn.php 中的数据库连接信息 3. 访问 install.php 进行安装 4. 安装完成后使用默认账户登录 【默认账户】 管理员账号:admin 管理员密码:123456 演示学生账号:S0001 ~ S0036 演示学生密码:123456 【文件结构】 / ├── inc/ # 公共文件目录 │ ├── conn.php # 数据库连接配置 │ ├── pubs.php # 公共PHP函数 │ ├── sqls.php # 数据库操作类 │ ├── code.php # 验证码生成 │ ├── pubs.js # 公共JavaScript函数 │ ├── pubs.css # 公共CSS样式 │ ├── head.php # 公共头部 │ ├── foot.php # 公共底部 │ └── json_user.php # 管理员账号缓存 │ ├── Ti/ # 管理员功能模块 │ ├── login.php # 登录页面 │ ├── lgout.php # 退出 │ ├── ipass.php # 修改密码 │ ├── iuser.php # 用户列表 │ ├── iusin.php # 用户导入 │ ├── ilist.php # 答题记录 │ └── idown.php # 数据下载 │ ├── Da/ # 学生答题功能模块 │ ├── login.php # 登录页面 │ ├── lgout.php # 退出 │ ├── ipass.php # 修改密码 │ ├── index.php # 考试ID输入 │ ├── idati.php # 答题页面 │ └── ilist.php # 答题记录 │ ├── Ku/ # 题库目录 │ ├── demo.json # 演示试卷 │ ├── test1.json # 计算机基础测试 │ └── survey.json # 调查问卷示例 │ ├── Ti.php # 管理员主入口 ├── Da.php # 学生答题主入口 ├── install.php # 安装程序 └── readme.txt # 本说明文件 【数据库结构】 1. user 表(用户表) - id: 主键ID - usid: 学号(唯一) - name: 姓名 - pass: 密码(加密存储) - ctime: 添加时间 - utime: 修改时间 2. recs 表(答题记录表) - id: 主键ID - ename: 考试名称 - epath: 试题路径 - ptime: 路径修改时间 - usid: 学号 - stime: 开始时间 - ltime: 最后答题时间 - idati: 答题记录(JSON格式) - jifen: 计分明细(JSON格式) - score: 得分 - ipadd: IP地址 【题库格式说明】 题库文件存放在 Ku/ 目录下,采用JSON格式,文件名即为考试ID。 题库JSON结构: { "name": "考试名称", "mode": 1, // 计分模式:1-答题模式1,2-调查模式,3-答题模式2 "time_limit": 30, // 答题时间限制(分钟),0为不限制 "description": "考试说明", "questions": { "q1": { "type": "tf", // 题目类型:tf-判断题,single-单选题,multi-多选题 "title": "题目内容", "options": ["选项A", "选项B", ...], "answer": "A", // 正确答案(多选题为数组 ["A","B","C"]) "score": 10 // 题目分值 }, ... } } 【计分方案说明】 1. 模式1(答题模式1): - 判断题、单选题、多选题:全对得分,否则0分 2. 模式2(调查模式): - 判断题、单选题:按选项顺序赋分(A=0, B=1, C=2...) - 多选题:计算选中的选项个数 3. 模式3(答题模式2): - 判断题、单选题:全对得分,否则0分 - 多选题:逐项对比答案,正确个数减错误个数,不选或负分得0分 【使用说明】 1. 管理员使用: - 访问 Ti.php 对应网址进入管理员登录页面 - 登录后可管理用户、查看答题记录、下载数据等 - 可通过用户导入功能批量导入用户 2. 学生使用: - 访问 Da.php 对应网址进入学生登录页面 - 登录后输入考试ID开始答题 - 答题过程中自动保存进度 - 可随时查看答题记录 3. 添加题库: - 在 Ku/ 目录下创建新的JSON文件 - 文件名即为考试ID - 按照题库格式编写题目内容 【注意事项】 1. 首次使用前请务必修改默认管理员密码 2. 题库JSON文件格式必须正确,否则无法正常答题 3. 答题时间限制功能需要客户端时间准确 4. 答题记录保存在数据库中,请定期备份 5. 批量导入用户时,数据格式为:学号[Tab]姓名[Tab]密码 6. 密码必须是6-16位数字字母组成 【技术特点】 1. 原生PHP+MySQL开发,无第三方依赖 2. 原生HTML5+CSS3+Ajax,无需引入前端框架 3. 响应式设计,适配移动端访问 4. 代码注释完整,便于二次开发 5. 支持验证码防护 6. 密码加盐加密存储 7. 答题进度本地缓存,防止数据丢失 8. 定时自动保存答题记录 【版本信息】 版本号:1.0.0 开发时间:2024年 作者联系方式:15058593138@qq.com(手机号同微信) 【更新日志】 v1.0.0 (2024-11-14) - 初始版本发布 - 实现基本的答题功能 - 实现管理员管理功能 - 支持三种计分模式 - 支持答题时间限制 - 支持答题进度保存 【常见问题】 Q: 安装时提示数据库连接失败? A: 请检查 inc/conn.php 中的数据库配置是否正确。 Q: 登录时验证码不显示? A: 请检查服务器是否安装了GD库。 Q: 答题时间到了无法提交? A: 这是正常现象,超时后系统会自动禁止提交。 Q: 如何添加新的题库? A: 在 Ku/ 目录下创建新的JSON文件,按照格式编写题目即可。 Q: 如何批量导入用户? A: 在管理员页面选择"用户导入",按照格式粘贴数据即可。 【联系方式】 如有问题或建议,请联系:15058593138@qq.com