php 实现 交卷
PHP 实现交卷功能
交卷功能通常涉及表单提交、数据验证、答案存储和评分等步骤。以下是实现交卷功能的关键代码示例和逻辑。
表单提交处理
创建一个HTML表单,用户填写答案后提交到PHP处理页面。

<form action="submit_answers.php" method="post">
<input type="text" name="answer1" placeholder="答案1">
<input type="text" name="answer2" placeholder="答案2">
<button type="submit">交卷</button>
</form>
后端处理逻辑
在submit_answers.php中,接收表单数据并进行处理。
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$answer1 = $_POST['answer1'] ?? '';
$answer2 = $_POST['answer2'] ?? '';
// 验证答案是否为空
if (empty($answer1) || empty($answer2)) {
die('请填写所有答案');
}
// 存储答案到数据库或文件
saveAnswers($answer1, $answer2);
// 计算得分
$score = calculateScore($answer1, $answer2);
// 显示结果
echo "您的得分是: " . $score;
}
function saveAnswers($answer1, $answer2) {
// 存储逻辑,例如写入数据库
$pdo = new PDO('mysql:host=localhost;dbname=exam', 'username', 'password');
$stmt = $pdo->prepare("INSERT INTO answers (answer1, answer2) VALUES (?, ?)");
$stmt->execute([$answer1, $answer2]);
}
function calculateScore($answer1, $answer2) {
$correctAnswer1 = '正确答案1';
$correctAnswer2 = '正确答案2';
$score = 0;
if ($answer1 === $correctAnswer1) {
$score += 50;
}
if ($answer2 === $correctAnswer2) {
$score += 50;
}
return $score;
}
?>
数据库表结构
如果需要存储答案到数据库,可以创建如下表结构:

CREATE TABLE answers (
id INT AUTO_INCREMENT PRIMARY KEY,
answer1 VARCHAR(255),
answer2 VARCHAR(255),
submit_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
安全性增强
为了防止SQL注入和跨站脚本攻击,建议对输入数据进行过滤和转义。
$answer1 = htmlspecialchars($_POST['answer1'] ?? '');
$answer2 = htmlspecialchars($_POST['answer2'] ?? '');
会话管理
使用会话跟踪用户状态,确保只有登录用户才能提交答案。
session_start();
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
通过以上步骤,可以实现一个基本的交卷功能。根据实际需求,可以进一步扩展功能,如添加时间限制、多选题支持等。






