PHP 语言 PHP 项目实战之简历管理系统

PHP阿木 发布于 2025-06-30 8 次阅读


PHP 项目实战之简历管理系统

简历管理系统是一个用于管理个人简历信息的系统,它可以帮助用户创建、存储、编辑和搜索简历。在PHP语言中,我们可以利用MySQL数据库和PHP的Web开发框架来构建这样一个系统。本文将围绕简历管理系统的开发,介绍相关的技术栈和关键代码实现。

技术栈

- PHP:作为后端开发语言,负责处理业务逻辑和数据库交互。

- MySQL:作为数据库,存储简历信息。

- HTML/CSS/JavaScript:作为前端技术,负责用户界面展示和交互。

- Bootstrap:作为前端框架,提供响应式布局和组件。

- Composer:用于管理PHP项目的依赖。

系统设计

功能模块

1. 用户注册与登录

2. 简历创建与编辑

3. 简历搜索与筛选

4. 简历预览与导出

5. 简历删除与恢复

数据库设计

以下是简历管理系统的数据库设计,包括用户表和简历表:

sql

CREATE TABLE `users` (


`id` int(11) NOT NULL AUTO_INCREMENT,


`username` varchar(50) NOT NULL,


`password` varchar(255) NOT NULL,


`email` varchar(100) NOT NULL,


PRIMARY KEY (`id`)


) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `resumes` (


`id` int(11) NOT NULL AUTO_INCREMENT,


`user_id` int(11) NOT NULL,


`name` varchar(100) NOT NULL,


`phone` varchar(20) NOT NULL,


`email` varchar(100) NOT NULL,


`address` text NOT NULL,


`education` text NOT NULL,


`experience` text NOT NULL,


`skills` text NOT NULL,


PRIMARY KEY (`id`),


FOREIGN KEY (`user_id`) REFERENCES `users`(`id`)


) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


关键代码实现

用户注册与登录

用户注册

php

// 用户注册处理


if ($_SERVER['REQUEST_METHOD'] === 'POST') {


$username = $_POST['username'];


$password = password_hash($_POST['password'], PASSWORD_DEFAULT);


$email = $_POST['email'];

// 连接数据库


$conn = new mysqli('localhost', 'root', '', 'resume_system');

// 检查用户名和邮箱是否已存在


$stmt = $conn->prepare("SELECT id FROM users WHERE username = ? OR email = ?");


$stmt->bind_param("ss", $username, $email);


$stmt->execute();


$result = $stmt->get_result();


if ($result->num_rows > 0) {


// 用户名或邮箱已存在


echo "Username or email already exists.";


} else {


// 插入新用户


$stmt = $conn->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");


$stmt->bind_param("sss", $username, $password, $email);


if ($stmt->execute()) {


echo "Registration successful.";


} else {


echo "Registration failed.";


}


}


$stmt->close();


$conn->close();


}


用户登录

php

// 用户登录处理


if ($_SERVER['REQUEST_METHOD'] === 'POST') {


$username = $_POST['username'];


$password = $_POST['password'];

// 连接数据库


$conn = new mysqli('localhost', 'root', '', 'resume_system');

// 检查用户名和密码


$stmt = $conn->prepare("SELECT id, password FROM users WHERE username = ?");


$stmt->bind_param("s", $username);


$stmt->execute();


$result = $stmt->get_result();


if ($result->num_rows > 0) {


$user = $result->fetch_assoc();


if (password_verify($password, $user['password'])) {


// 登录成功


session_start();


$_SESSION['user_id'] = $user['id'];


echo "Login successful.";


} else {


// 密码错误


echo "Incorrect password.";


}


} else {


// 用户名不存在


echo "Username does not exist.";


}


$stmt->close();


$conn->close();


}


简历创建与编辑

简历创建

php

// 简历创建处理


if ($_SERVER['REQUEST_METHOD'] === 'POST') {


$user_id = $_SESSION['user_id'];


$name = $_POST['name'];


$phone = $_POST['phone'];


$email = $_POST['email'];


$address = $_POST['address'];


$education = $_POST['education'];


$experience = $_POST['experience'];


$skills = $_POST['skills'];

// 连接数据库


$conn = new mysqli('localhost', 'root', '', 'resume_system');

// 插入新简历


$stmt = $conn->prepare("INSERT INTO resumes (user_id, name, phone, email, address, education, experience, skills) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");


$stmt->bind_param("isssssss", $user_id, $name, $phone, $email, $address, $education, $experience, $skills);


if ($stmt->execute()) {


echo "Resume created successfully.";


} else {


echo "Resume creation failed.";


}


$stmt->close();


$conn->close();


}


简历编辑

php

// 简历编辑处理


if ($_SERVER['REQUEST_METHOD'] === 'POST') {


$resume_id = $_POST['resume_id'];


$name = $_POST['name'];


$phone = $_POST['phone'];


$email = $_POST['email'];


$address = $_POST['address'];


$education = $_POST['education'];


$experience = $_POST['experience'];


$skills = $_POST['skills'];

// 连接数据库


$conn = new mysqli('localhost', 'root', '', 'resume_system');

// 更新简历信息


$stmt = $conn->prepare("UPDATE resumes SET name = ?, phone = ?, email = ?, address = ?, education = ?, experience = ?, skills = ? WHERE id = ?");


$stmt->bind_param("sssssssi", $name, $phone, $email, $address, $education, $experience, $skills, $resume_id);


if ($stmt->execute()) {


echo "Resume updated successfully.";


} else {


echo "Resume update failed.";


}


$stmt->close();


$conn->close();


}


简历搜索与筛选

php

// 简历搜索与筛选处理


if ($_SERVER['REQUEST_METHOD'] === 'GET') {


$search = $_GET['search'];


$filter = $_GET['filter'];

// 连接数据库


$conn = new mysqli('localhost', 'root', '', 'resume_system');

// 搜索和筛选简历


$stmt = $conn->prepare("SELECT FROM resumes WHERE name LIKE ? OR phone LIKE ? OR email LIKE ? OR address LIKE ? OR education LIKE ? OR experience LIKE ? OR skills LIKE ?");


$stmt->bind_param("sssssss", $search, $search, $search, $search, $search, $search, $search);


$stmt->execute();


$result = $stmt->get_result();


while ($row = $result->fetch_assoc()) {


// 输出搜索结果


echo "<div>";


echo "Name: " . $row['name'] . "<br>";


echo "Phone: " . $row['phone'] . "<br>";


echo "Email: " . $row['email'] . "<br>";


echo "Address: " . $row['address'] . "<br>";


echo "Education: " . $row['education'] . "<br>";


echo "Experience: " . $row['experience'] . "<br>";


echo "Skills: " . $row['skills'] . "<br>";


echo "</div>";


}


$stmt->close();


$conn->close();


}


简历预览与导出

php

// 简历预览与导出处理


if ($_SERVER['REQUEST_METHOD'] === 'GET') {


$resume_id = $_GET['resume_id'];

// 连接数据库


$conn = new mysqli('localhost', 'root', '', 'resume_system');

// 获取简历信息


$stmt = $conn->prepare("SELECT FROM resumes WHERE id = ?");


$stmt->bind_param("i", $resume_id);


$stmt->execute();


$result = $stmt->get_result();


$row = $result->fetch_assoc();

// 输出简历信息


echo "<h1>Resume Preview</h1>";


echo "Name: " . $row['name'] . "<br>";


echo "Phone: " . $row['phone'] . "<br>";


echo "Email: " . $row['email'] . "<br>";


echo "Address: " . $row['address'] . "<br>";


echo "Education: " . $row['education'] . "<br>";


echo "Experience: " . $row['experience'] . "<br>";


echo "Skills: " . $row['skills'] . "<br>";

// 导出简历为PDF


$pdf = new FPDF();


$pdf->AddPage();


$pdf->SetFont('Arial', 'B', 16);


$pdf->Cell(40, 10, 'Resume');


$pdf->Ln();


$pdf->SetFont('Arial', '', 12);


$pdf->MultiCell(0, 10, "Name: " . $row['name'] . "Phone: " . $row['phone'] . "Email: " . $row['email'] . "Address: " . $row['address'] . "Education: " . $row['education'] . "Experience: " . $row['experience'] . "Skills: " . $row['skills']);


$pdf->Output('F', 'resume.pdf');

$stmt->close();


$conn->close();


}


简历删除与恢复

php

// 简历删除与恢复处理


if ($_SERVER['REQUEST_METHOD'] === 'POST') {


$action = $_POST['action'];


$resume_id = $_POST['resume_id'];

// 连接数据库


$conn = new mysqli('localhost', 'root', '', 'resume_system');

// 删除或恢复简历


if ($action === 'delete') {


$stmt = $conn->prepare("DELETE FROM resumes WHERE id = ?");


$stmt->bind_param("i", $resume_id);


if ($stmt->execute()) {


echo "Resume deleted successfully.";


} else {


echo "Resume deletion failed.";


}


} elseif ($action === 'restore') {


$stmt = $conn->prepare("UPDATE resumes SET deleted_at = NULL WHERE id = ?");


$stmt->bind_param("i", $resume_id);


if ($stmt->execute()) {


echo "Resume restored successfully.";


} else {


echo "Resume restoration failed.";


}


}


$stmt->close();


$conn->close();


}


总结

本文介绍了如何使用PHP语言和MySQL数据库构建一个简历管理系统。通过实现用户注册与登录、简历创建与编辑、简历搜索与筛选、简历预览与导出、简历删除与恢复等功能,我们构建了一个完整的简历管理系统。在实际开发中,还需要考虑安全性、性能优化和用户体验等方面。希望本文能对PHP项目实战有所帮助。