PHP打造高效在线招聘平台

admin 2025-01-14 467 0

在这个信息爆炸的时代,招聘与求职的需求日益增长。如何快速搭建一个高效、易用的在线招聘平台,成为了许多创业者和开发者的关注焦点。本文将带你一步步用PHP实现一个功能完善的在线招聘平台。

PHP打造高效在线招聘平台

项目准备

首先,确保你已经安装了PHP环境以及MySQL数据库。推荐使用XAMPP或WAMP这类集成环境,省去了繁琐的配置过程。

1. 数据库设计

一个招聘平台的核心是数据,因此合理的数据库设计至关重要。我们需要以下几个主要表:

  • users:存储用户信息

    • id
    • username
    • password
    • email
    • 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)