当前位置: 首页 > 新闻资讯 > 就业管理系统

用PHP打造一个简单的就业管理系统

本文通过实际代码讲解如何使用PHP搭建一个基础的就业管理系统,适合初学者学习和实践。

嘿,朋友们!今天咱们来聊一个挺有意思的话题——用PHP做一个“就业管理系统”。听起来是不是有点高大上?其实吧,说白了就是个网页程序,用来管理学生或者求职者的信息、简历、岗位信息什么的。别担心,我不会讲得太复杂,咱们就从最基础的开始,慢慢来。

就业管理系统

首先,我得说一下,这个系统虽然叫“就业管理系统”,但其实它只是一个非常初级的版本,适合刚学PHP的新手练手。如果你是想做企业级的系统,那可能需要更复杂的架构和框架,比如Laravel或者CodeIgniter之类的。不过今天咱们不搞那些花里胡哨的东西,只用原生的PHP,加上一点MySQL数据库,就能搞定一个基本的界面了。

那我们先理清楚需求。这个系统大概需要哪些功能呢?我觉得至少应该包括:

- 用户注册和登录(管理员和普通用户)

- 查看职位信息

- 提交简历

- 管理员发布职位

- 管理员查看提交的简历

当然,这只是最基础的功能。如果你有兴趣,可以后面逐步扩展,比如添加搜索、筛选、邮件通知等等。

那么,我们先从环境搭建开始。你需要一个本地服务器,比如XAMPP或者WAMP,这样就能运行PHP和MySQL了。安装好之后,启动Apache和MySQL服务,然后在浏览器里输入localhost,看看有没有出现Apache的欢迎页面。如果没有问题,那就说明你的环境已经准备好了。

接下来,我们需要创建一个数据库。打开phpMyAdmin,也就是XAMPP里的那个工具。新建一个数据库,名字随便起,比如叫做“job_system”。然后创建几个表,比如用户表、职位表、简历表。这里我给你写一下SQL语句,你直接复制到phpMyAdmin的SQL窗口里执行就行。

CREATE DATABASE job_system;
USE job_system;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role ENUM('admin', 'user') DEFAULT 'user'
);
CREATE TABLE jobs (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
description TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE resumes (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
name VARCHAR(100),
email VARCHAR(100),
resume_file VARCHAR(255),
applied_job_id INT,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (applied_job_id) REFERENCES jobs(id)
);

执行完这些SQL语句后,数据库就建好了。接下来我们就可以开始写PHP代码了。

先从用户登录和注册开始。首先,我们要做一个登录页面,让用户输入用户名和密码。然后验证是否正确,如果是管理员,就跳转到管理员页面;如果是普通用户,就跳转到个人页面。

登录页面的HTML部分很简单,就是一个表单,提交到login.php文件。代码如下:




登录


用户登录




然后是login.php的处理逻辑。这里需要用到PHP连接数据库,并查询用户是否存在。如果存在,就设置session,记录用户角色,然后跳转到对应的页面。

connect_error) {
die("连接失败: " . $conn->connect_error);
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($password, $row['password'])) {
$_SESSION['user_id'] = $row['id'];
$_SESSION['role'] = $row['role'];
if ($row['role'] == 'admin') {
header("Location: admin_dashboard.php");
} else {
header("Location: user_dashboard.php");
}
exit;
} else {
echo "密码错误!";
}
} else {
echo "用户不存在!";
}
}
?>

这里需要注意的是,密码不能明文存储,所以要用`password_hash()`函数加密,用`password_verify()`来验证。如果你要注册用户的话,也要用同样的方式处理密码。

注册页面的代码也类似,只不过要多一个表单,让用户输入用户名、密码、确认密码等。然后插入到users表中。这部分代码我就不详细写了,你可以参考上面的login.php,稍微改一下就行。

接下来是管理员的后台页面,也就是admin_dashboard.php。这个页面可以显示所有职位信息,以及用户提交的简历。我们可以用一个简单的表格来展示数据。

connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取所有职位
$jobs_sql = "SELECT * FROM jobs";
$jobs_result = $conn->query($jobs_sql);
// 获取所有简历
$resumes_sql = "SELECT * FROM resumes";
$resumes_result = $conn->query($resumes_sql);
?>
管理员首页
职位列表
fetch_assoc()): ?>
ID 标题 描述 发布时间
简历列表 fetch_assoc()): ?>
ID 姓名 邮箱 简历文件 申请职位ID

这个页面看起来是不是很基础?没错,它只是展示了数据,没有太多交互功能。但这是第一步,后续你可以添加编辑、删除、上传简历等功能。

对于普通用户的页面,也就是user_dashboard.php,可以显示他们提交的简历,以及一些基本信息。这部分代码也差不多,主要是从数据库中取出当前用户的数据。

最后,我们还需要一个简历提交页面,让用户填写个人信息并上传简历。这部分涉及到文件上传,所以要注意安全性,比如限制文件类型、大小等。

connect_error) {
die("连接失败: " . $conn->connect_error);
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$email = $_POST['email'];
$job_id = $_POST['job_id'];
$target_dir = "resumes/";
$target_file = $target_dir . basename($_FILES["resume"]["name"]);
$uploadOk = 1;
// 检查文件是否存在
if (file_exists($target_file)) {
echo "文件已存在。";
$uploadOk = 0;
}
// 检查文件大小
if ($_FILES["resume"]["size"] > 500000) {
echo "文件太大。";
$uploadOk = 0;
}
// 允许的文件类型
$allowed_types = array("pdf", "doc", "docx");
$file_type = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
if (!in_array($file_type, $allowed_types)) {
echo "只允许上传PDF、DOC或DOCX文件。";
$uploadOk = 0;
}
if ($uploadOk == 1) {
if (move_uploaded_file($_FILES["resume"]["tmp_name"], $target_file)) {
$sql = "INSERT INTO resumes (user_id, name, email, resume_file, applied_job_id) VALUES (?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("isssi", $_SESSION['user_id'], $name, $email, $target_file, $job_id);
$stmt->execute();
echo "简历上传成功!";
} else {
echo "上传失败。";
}
}
}
?>
提交简历








这个简历提交页面用了POST方法,同时支持文件上传。注意,文件上传时必须设置`enctype="multipart/form-data"`,否则无法正常上传。

总结一下,今天我们用PHP和MySQL搭建了一个简单的就业管理系统。虽然功能不多,但已经涵盖了用户登录、职位展示、简历提交等基本功能。如果你觉得还不够,可以继续扩展,比如添加搜索、分页、权限控制、邮件通知等。

对于新手来说,这是一次很好的实践机会。通过这样的项目,你可以学到很多PHP的基础知识,比如数据库操作、表单处理、文件上传、会话管理等等。而且,这样的项目也可以作为你简历中的一个小项目,帮助你在找工作的时候加分。

最后,建议大家多动手实践。不要只看不练,不然真的很难掌握。遇到问题的时候,多去查文档,或者去论坛提问,比如Stack Overflow或者知乎,这些都是非常好的资源。

如果你对这个项目感兴趣,可以试着自己再完善一下,比如加入更多的功能,或者优化界面。相信你会越来越熟练,最终成为一个真正的PHP开发者!

好了,今天的分享就到这里。希望对你有所帮助,如果有任何疑问,欢迎留言交流!

就业管理系统

本站部分内容及素材来源于互联网,如有侵权,联系必删!

相关资讯

    暂无相关的数据...