在这个信息爆炸的时代,招聘与求职的需求日益增长。如何快速搭建一个高效、易用的在线招聘平台,成为了许多创业者和开发者的关注焦点。本文将带你一步步用PHP实现一个功能完善的在线招聘平台。
项目准备
首先,确保你已经安装了PHP环境以及MySQL数据库。推荐使用XAMPP或WAMP这类集成环境,省去了繁琐的配置过程。
1. 数据库设计
一个招聘平台的核心是数据,因此合理的数据库设计至关重要。我们需要以下几个主要表:
-
users:存储用户信息
- id
- username
- password
- role(区分求职者和招聘者)
-
jobs:存储职位信息
- id
- title
- description
- company_id
- posted_date
-
applications:存储求职申请
- id
- job_id
- user_id
- apply_date
-
companies:存储公司信息
- id
- name
- description
2. 创建项目结构
在项目根目录下,创建以下文件夹和文件:
/project
/includes
- db.php
/templates
- header.php
- footer.php
/controllers
- userController.php
- jobController.php
/views
- index.php
- login.php
- register.php
- jobList.php
- jobDetail.php
- index.php
- config.php
核心功能实现
1. 数据库连接
在includes/db.php
中,编写数据库连接代码:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "job_portal";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
2. 用户注册与登录
在controllers/userController.php
中,实现用户注册与登录功能:
<?php
include '../includes/db.php';
function registerUser($username, $password, $email, $role) {
$password = password_hash($password, PASSWORD_DEFAULT);
$sql = "INSERT INTO users (username, password, email, role) VALUES ('$username', '$password', '$email', '$role')";
global $conn;
if ($conn->query($sql) === TRUE) {
return true;
} else {
return false;
}
}
function loginUser($username, $password) {
$sql = "SELECT * FROM users WHERE username='$username'";
global $conn;
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$user = $result->fetch_assoc();
if (password_verify($password, $user['password'])) {
session_start();
$_SESSION['user_id'] = $user['id'];
$_SESSION['role'] = $user['role'];
return true;
}
}
return false;
}
?>
3. 职位发布与管理
在controllers/jobController.php
中,实现职位发布与管理功能:
<?php
include '../includes/db.php';
function createJob($title, $description, $company_id) {
$sql = "INSERT INTO jobs (title, description, company_id, posted_date) VALUES ('$title', '$description', '$company_id', NOW())";
global $conn;
if ($conn->query($sql) === TRUE) {
return true;
} else {
return false;
}
}
function getJobs() {
$sql = "SELECT * FROM jobs JOIN companies ON jobs.company_id = companies.id";
global $conn;
$result = $conn->query($sql);
return $result->fetch_all(MYSQLI_ASSOC);
}
?>
4. 前端页面展示
在views/index.php
中,展示职位列表:
<?php
include '../includes/db.php';
include '../controllers/jobController.php';
$jobs = getJobs();
?>
<!DOCTYPE html>
<html>
<head>
<title>在线招聘平台</title>
</head>
<body>
<?php include '../templates/header.php'; ?>
<h1>最新职位</h1>
<div>
<?php foreach ($jobs as $job): ?>
<div>
<h2><?php echo $job['title']; ?></h2>
<p><?php echo $job['description']; ?></p>
<p>公司:<?php echo $job['name']; ?></p>
</div>
<?php endforeach
评论(0)