以下是一个简单的PHP答题软件实例,我们将使用PHP和MySQL来构建一个基本的在线考试系统。
1. 系统需求
| 需求项 | 描述 |
|---|---|
| 用户管理 | 允许管理员添加、删除和修改用户信息 |
| 题库管理 | 允许管理员添加、删除和修改题目信息 |
| 考试管理 | 允许用户进行在线考试,管理员可以查看考试结果 |
| 权限管理 | 管理员和普通用户有不同的权限 |
2. 技术栈
- PHP
- MySQL
- HTML
- CSS
- JavaScript
3. 数据库设计
以下是一个简单的数据库设计示例:
```sql
-- 创建用户表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
role ENUM('admin', 'user') NOT NULL
);
-- 创建题目表
CREATE TABLE questions (
id INT AUTO_INCREMENT PRIMARY KEY,
question TEXT NOT NULL,
option1 TEXT NOT NULL,
option2 TEXT NOT NULL,
option3 TEXT NOT NULL,
option4 TEXT NOT NULL,
answer ENUM('1', '2', '3', '4') NOT NULL
);
-- 创建考试记录表
CREATE TABLE exams (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
score INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);
```
4. PHP代码示例
用户登录
```php
// 登录验证
session_start();
if (isset($_POST['username']) && isset($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
// 连接数据库
$conn = new mysqli('localhost', 'root', 'password', 'database_name');
// 检查连接
if ($conn->connect_error) {
die("