


How to use PHP to implement a simple online exam and score query system
How to use PHP to implement a simple online examination and score query system
随着网络的发展,在线考试和成绩查询系统在教育和培训领域得到了广泛应用。利用PHP编程语言,我们可以快速实现一个简单的在线考试和成绩查询系统,为学生提供方便的考试和查询服务。下面将介绍如何使用PHP实现该系统,并提供具体的代码示例。
1. System function design
The basic functions of the examination system include students There are three parts: registration, examination, and score inquiry. Students need to provide basic information when registering, including student number, name, class, etc. The exam section provides two types of questions: multiple-choice questions and fill-in-the-blank questions. Students can choose answers or fill in the answers according to the questions. In the score inquiry section, students’ test scores can be queried based on their student number or name.
2. System architecture design
In order to realize the examination and score query functions, we need to design the database and corresponding table structure. Create a database named exam in the MySQL database, which contains two tables: students and scores. The students table is used to store basic information of students, and the scores table is used to store students' test scores.
The structure of the students table is as follows:
CREATE TABLE students ( id INT(11) AUTO_INCREMENT PRIMARY KEY, studentID VARCHAR(20) NOT NULL, name VARCHAR(50) NOT NULL, class VARCHAR(50) NOT NULL );
The structure of the scores table is as follows:
CREATE TABLE scores ( id INT(11) AUTO_INCREMENT PRIMARY KEY, studentID VARCHAR(20) NOT NULL, score INT(11) NOT NULL );
3. System code implementation
- Student registration part
In the register.php file, write the following code to implement the student registration function:
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $studentID = $_POST["studentID"]; $name = $_POST["name"]; $class = $_POST["class"]; $conn = new mysqli("localhost", "username", "password", "exam"); // 修改为实际的数据库连接信息 $sql = "INSERT INTO students (studentID, name, class) VALUES ('$studentID', '$name', '$class')"; if ($conn->query($sql) === TRUE) { echo "注册成功!"; } else { echo "注册失败!"; } $conn->close(); } ?> <!DOCTYPE html> <html> <head> <title>学生注册</title> </head> <body> <h2 id="学生注册">学生注册</h2> <form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 学号:<input type="text" name="studentID"><br> 姓名:<input type="text" name="name"><br> 班级:<input type="text" name="class"><br> <input type="submit" value="注册"> </form> </body> </html>
- Exam part
In the exam.php file , write the following code to implement the exam function:
<!DOCTYPE html> <html> <head> <title>考试</title> </head> <body> <h2 id="考试">考试</h2> <form method="POST" action="submit.php"> <h3 id="选择题">选择题</h3> 1. PHP是一种什么类型的编程语言?<br> A. 面向对象编程语言<br> B. 脚本编程语言<br> C. 编译型语言<br> D. 结构化编程语言<br> <input type="radio" name="answer1" value="A"> A <input type="radio" name="answer1" value="B"> B <input type="radio" name="answer1" value="C"> C <input type="radio" name="answer1" value="D"> D<br> <h3 id="填空题">填空题</h3> 2. PHP的全称是__?__ Hypertext Preprocessor.<br> <input type="text" name="answer2"><br> <input type="submit" value="提交"> </form> </body> </html>
- Submit answer part
In the submit.php file, write the following code to process the answers submitted by students and calculate the scores:
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $answer1 = $_POST["answer1"]; $answer2 = $_POST["answer2"]; $score = 0; if ($answer1 == "B") { $score += 50; } if ($answer2 == "PHP") { $score += 50; } session_start(); $studentID = $_SESSION["studentID"]; $conn = new mysqli("localhost", "username", "password", "exam"); // 修改为实际的数据库连接信息 $sql = "INSERT INTO scores (studentID, score) VALUES ('$studentID', '$score')"; if ($conn->query($sql) === TRUE) { echo "提交成功!成绩为:" . $score; } else { echo "提交失败!"; } $conn->close(); } ?> <!DOCTYPE html> <html> <head> <title>提交</title> </head> <body> </body> </html>
- Grade query part
In the query.php file, write the following code to implement the student grade query function:
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $studentID = $_POST["studentID"]; $conn = new mysqli("localhost", "username", "password", "exam"); // 修改为实际的数据库连接信息 $sql = "SELECT * FROM scores WHERE studentID = '$studentID'"; $result = $conn->query($sql); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "学号:" . $row["studentID"] . ",成绩:" . $row["score"] . "<br>"; } } else { echo "未查询到成绩信息!"; } $conn->close(); } ?> <!DOCTYPE html> <html> <head> <title>成绩查询</title> </head> <body> <h2 id="成绩查询">成绩查询</h2> <form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 学号:<input type="text" name="studentID"><br> <input type="submit" value="查询"> </form> </body> </html>
4. System operation test
Save the above code as four files: register.php, exam.php, submit.php and query.php, and deploy them to a web server that supports PHP. Visit register.php in the browser to register students, visit exam.php to take the exam, and visit query.php to query the results.
Through the above examples, we implemented a simple online exam and score query system using PHP. I believe that through learning and practice, you can further enrich and improve the system to meet more needs.
The above is the detailed content of How to use PHP to implement a simple online exam and score query system. For more information, please follow other related articles on the PHP Chinese website!

PHPisusedforsendingemailsduetoitsintegrationwithservermailservicesandexternalSMTPproviders,automatingnotificationsandmarketingcampaigns.1)SetupyourPHPenvironmentwithawebserverandPHP,ensuringthemailfunctionisenabled.2)UseabasicscriptwithPHP'smailfunct

The best way to send emails is to use the PHPMailer library. 1) Using the mail() function is simple but unreliable, which may cause emails to enter spam or cannot be delivered. 2) PHPMailer provides better control and reliability, and supports HTML mail, attachments and SMTP authentication. 3) Make sure SMTP settings are configured correctly and encryption (such as STARTTLS or SSL/TLS) is used to enhance security. 4) For large amounts of emails, consider using a mail queue system to optimize performance.

CustomheadersandadvancedfeaturesinPHPemailenhancefunctionalityandreliability.1)Customheadersaddmetadatafortrackingandcategorization.2)HTMLemailsallowformattingandinteractivity.3)AttachmentscanbesentusinglibrarieslikePHPMailer.4)SMTPauthenticationimpr

Sending mail using PHP and SMTP can be achieved through the PHPMailer library. 1) Install and configure PHPMailer, 2) Set SMTP server details, 3) Define the email content, 4) Send emails and handle errors. Use this method to ensure the reliability and security of emails.

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

The reason for using Dependency Injection (DI) is that it promotes loose coupling, testability, and maintainability of the code. 1) Use constructor to inject dependencies, 2) Avoid using service locators, 3) Use dependency injection containers to manage dependencies, 4) Improve testability through injecting dependencies, 5) Avoid over-injection dependencies, 6) Consider the impact of DI on performance.

PHPperformancetuningiscrucialbecauseitenhancesspeedandefficiency,whicharevitalforwebapplications.1)CachingwithAPCureducesdatabaseloadandimprovesresponsetimes.2)Optimizingdatabasequeriesbyselectingnecessarycolumnsandusingindexingspeedsupdataretrieval.

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 English version
Recommended: Win version, supports code prompts!

SublimeText3 Linux new version
SublimeText3 Linux latest version
