How to write a simple online examination system through PHP
With the rapid development of the Internet, more and more education and training institutions have chosen online examination systems to Facilitates exams and assessments for students. If you are a PHP developer, this article will introduce you to how to use PHP to write a simple online exam system.
System design and functional requirements
Before starting to write code, first we need to understand the design and functional requirements of the system. A simple online exam system usually has the following features:
Now let us implement these functions step by step.
On the registration page, the user needs to provide a username and password, which are stored in the database. On the login page, the user needs to enter the user name and password. The system will search for matching records from the database based on the entered user name and password. If there is a matching record, the user will be redirected to the main page, otherwise a login failure message will be displayed.
The following is a sample code for the registration and login pages:
Registration page (register.php):
<?php // 处理用户注册 if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST['username']; $password = $_POST['password']; // 将用户名和密码存储在数据库中 header("Location: login.php"); exit(); } ?> <form action="" method="POST"> <label for="username">用户名:</label> <input type="text" id="username" name="username"> <br> <label for="password">密码:</label> <input type="password" id="password" name="password"> <br> <input type="submit" value="注册"> </form>
Login page (login.php):
<?php // 处理用户登录 if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST['username']; $password = $_POST['password']; // 从数据库中查找匹配的记录 if (有匹配记录) { header("Location: index.php"); exit(); } else { $errorMessage = "用户名或密码错误"; } } ?> <form action="" method="POST"> <label for="username">用户名:</label> <input type="text" id="username" name="username"> <br> <label for="password">密码:</label> <input type="password" id="password" name="password"> <br> <input type="submit" value="登录"> </form>
Teachers need to be able to add questions to the system and assign them to the corresponding exams. The following is a simple page example code for adding questions:
Add question page (add_question.php):
<?php // 处理添加题目 if ($_SERVER["REQUEST_METHOD"] == "POST") { $question = $_POST['question']; $option_a = $_POST['option_a']; $option_b = $_POST['option_b']; $option_c = $_POST['option_c']; $option_d = $_POST['option_d']; $answer = $_POST['answer']; // 将题目存储在数据库中 header("Location: manage_questions.php"); exit(); } ?> <form action="" method="POST"> <label for="question">题目:</label> <input type="text" id="question" name="question"> <br> <label for="option_a">选项A:</label> <input type="text" id="option_a" name="option_a"> <br> <label for="option_b">选项B:</label> <input type="text" id="option_b" name="option_b"> <br> <label for="option_c">选项C:</label> <input type="text" id="option_c" name="option_c"> <br> <label for="option_d">选项D:</label> <input type="text" id="option_d" name="option_d"> <br> <label for="answer">答案:</label> <input type="text" id="answer" name="answer"> <br> <input type="submit" value="添加题目"> </form>
The following is a simple sample code for creating an exam page:
Create exam page (create_exam.php):
<?php // 处理创建考试 if ($_SERVER["REQUEST_METHOD"] == "POST") { $exam_name = $_POST['exam_name']; $exam_time = $_POST['exam_time']; // 将考试存储在数据库中 header("Location: manage_exams.php"); exit(); } ?> <form action="" method="POST"> <label for="exam_name">考试名称:</label> <input type="text" id="exam_name" name="exam_name"> <br> <label for="exam_time">考试时间:</label> <input type="text" id="exam_time" name="exam_time"> <br> <input type="submit" value="创建考试"> </form>
The following is a simple exam interface and sample code for automatic scoring:
Exam interface (exam.php):
<?php // 获取考试题目和答案 $questions = // 从数据库中获取题目 // 处理学生提交的考试答案 if ($_SERVER["REQUEST_METHOD"] == "POST") { $answers = // 从POST数据中获取学生答案 // 自动评分学生考试 // 生成考试报告 header("Location: exam_report.php"); exit(); } ?> <form action="" method="POST"> <?php foreach ($questions as $question) : ?> <h4><?php echo $question['question']; ?></h4> <input type="radio" name="answer_<?php echo $question['id']; ?>" value="A"> <?php echo $question['option_a']; ?><br> <input type="radio" name="answer_<?php echo $question['id']; ?>" value="B"> <?php echo $question['option_b']; ?><br> <input type="radio" name="answer_<?php echo $question['id']; ?>" value="C"> <?php echo $question['option_c']; ?><br> <input type="radio" name="answer_<?php echo $question['id']; ?>" value="D"> <?php echo $question['option_d']; ?><br> <?php endforeach; ?> <br> <input type="submit" value="提交考试"> </form>
Automatic scoring and exam report page (exam_report.php):
<?php // 从数据库中获取学生考试答案和正确答案 $student_answers = // 从数据库中获取学生考试答案 $correct_answers = // 从数据库中获取正确答案 // 计算得分和生成考试报告 $score = 0; $total_questions = // 计算总题数 $correct_count = 0; foreach ($student_answers as $index => $student_answer) { if ($student_answer == $correct_answers[$index]) { $score++; $correct_count++; } } $score_percentage = $score / $total_questions * 100; // 显示考试报告 echo "总题数: " . $total_questions . "<br>"; echo "正确数: " . $correct_count . "<br>"; echo "得分: " . $score . "<br>"; echo "得分百分比: " . $score_percentage . "%"; ?>
Summary
Through the above sample code, you can use PHP to write a simple online exam system. Of course, this is just a basic example, and you can expand and improve the system according to your actual needs. I hope this article can be helpful to you, and I wish you success in creating your own online examination system!
The above is the detailed content of How to write a simple online exam system through PHP. For more information, please follow other related articles on the PHP Chinese website!