PHP 语言 PHP 项目实战之任务管理系统

PHP阿木 发布于 20 天前 3 次阅读


PHP 项目实战之任务管理系统

任务管理系统(Task Management System,TMS)是一种用于跟踪和管理项目任务、进度和资源的工具。在软件开发、项目管理等领域,任务管理系统扮演着至关重要的角色。本文将围绕PHP语言,通过一个实战项目——任务管理系统,来探讨相关的代码技术和实现方法。

项目概述

本任务管理系统旨在提供一个简单、易用的平台,帮助团队高效地管理项目任务。系统主要功能包括:

1. 用户注册与登录

2. 任务创建、编辑、删除

3. 任务分配与跟踪

4. 任务进度查看

5. 权限管理

技术栈

- PHP:后端开发语言

- MySQL:数据库

- Bootstrap:前端框架

- HTML/CSS/JavaScript:前端技术

系统设计

数据库设计

我们需要设计数据库表结构。以下是几个主要表的设计:

1. `users`:存储用户信息

- `id`:主键,自增

- `username`:用户名

- `password`:密码

- `email`:邮箱

- `role`:角色(管理员、普通用户)

2. `tasks`:存储任务信息

- `id`:主键,自增

- `title`:任务标题

- `description`:任务描述

- `status`:任务状态(未开始、进行中、已完成)

- `assignee`:负责人(用户ID)

- `start_date`:开始日期

- `end_date`:结束日期

- `priority`:优先级

3. `task_assignments`:存储任务分配信息

- `id`:主键,自增

- `task_id`:任务ID

- `user_id`:用户ID

功能模块实现

用户注册与登录

1. 用户注册

php

// 用户注册表单处理


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


$username = $_POST['username'];


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


$email = $_POST['email'];

// 连接数据库


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

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


$stmt = $conn->prepare("SELECT 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);


$stmt->execute();


echo "Registration successful!";


}

$conn->close();


}


}


2. 用户登录

php

// 用户登录表单处理


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


$username = $_POST['username'];


$password = $_POST['password'];

// 连接数据库


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

// 查询用户信息


$stmt = $conn->prepare("SELECT 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['user_id'] = $user['id'];


echo "Login successful!";


} else {


// 密码错误


echo "Password is incorrect!";


}


} else {


// 用户不存在


echo "Username does not exist!";


}

$conn->close();


}


}


任务创建、编辑、删除

1. 任务创建

php

// 任务创建表单处理


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


$title = $_POST['title'];


$description = $_POST['description'];


$assignee = $_POST['assignee'];


$start_date = $_POST['start_date'];


$end_date = $_POST['end_date'];


$priority = $_POST['priority'];

// 连接数据库


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

// 插入新任务


$stmt = $conn->prepare("INSERT INTO tasks (title, description, assignee, start_date, end_date, priority) VALUES (?, ?, ?, ?, ?, ?)");


$stmt->bind_param("ssssss", $title, $description, $assignee, $start_date, $end_date, $priority);


$stmt->execute();

echo "Task created successfully!";


$conn->close();


}


}


2. 任务编辑

php

// 任务编辑表单处理


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


$id = $_POST['id'];


$title = $_POST['title'];


$description = $_POST['description'];


$assignee = $_POST['assignee'];


$start_date = $_POST['start_date'];


$end_date = $_POST['end_date'];


$priority = $_POST['priority'];

// 连接数据库


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

// 更新任务信息


$stmt = $conn->prepare("UPDATE tasks SET title = ?, description = ?, assignee = ?, start_date = ?, end_date = ?, priority = ? WHERE id = ?");


$stmt->bind_param("ssssssi", $title, $description, $assignee, $start_date, $end_date, $priority, $id);


$stmt->execute();

echo "Task updated successfully!";


$conn->close();


}


}


3. 任务删除

php

// 任务删除处理


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


$id = $_POST['id'];

// 连接数据库


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

// 删除任务


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


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


$stmt->execute();

echo "Task deleted successfully!";


$conn->close();


}


}


任务分配与跟踪

1. 任务分配

php

// 任务分配处理


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


$task_id = $_POST['task_id'];


$user_id = $_POST['user_id'];

// 连接数据库


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

// 插入任务分配信息


$stmt = $conn->prepare("INSERT INTO task_assignments (task_id, user_id) VALUES (?, ?)");


$stmt->bind_param("ii", $task_id, $user_id);


$stmt->execute();

echo "Task assigned successfully!";


$conn->close();


}


}


2. 任务跟踪

php

// 任务跟踪处理


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


$id = $_POST['id'];


$status = $_POST['status'];

// 连接数据库


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

// 更新任务状态


$stmt = $conn->prepare("UPDATE tasks SET status = ? WHERE id = ?");


$stmt->bind_param("si", $status, $id);


$stmt->execute();

echo "Task status updated successfully!";


$conn->close();


}


}


任务进度查看

php

// 任务进度查看处理


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


$user_id = $_SESSION['user_id'];

// 连接数据库


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

// 查询用户负责的任务


$stmt = $conn->prepare("SELECT FROM tasks WHERE assignee = ? ORDER BY start_date ASC");


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


$stmt->execute();


$result = $stmt->get_result();

// 输出任务信息


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


echo "ID: " . $row['id'] . "<br>";


echo "Title: " . $row['title'] . "<br>";


echo "Description: " . $row['description'] . "<br>";


echo "Status: " . $row['status'] . "<br>";


echo "Start Date: " . $row['start_date'] . "<br>";


echo "End Date: " . $row['end_date'] . "<br>";


echo "Priority: " . $row['priority'] . "<br><br>";


}

$conn->close();


}


}


权限管理

php

// 权限管理处理


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


$user_id = $_POST['user_id'];


$role = $_POST['role'];

// 连接数据库


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

// 更新用户角色


$stmt = $conn->prepare("UPDATE users SET role = ? WHERE id = ?");


$stmt->bind_param("si", $role, $user_id);


$stmt->execute();

echo "User role updated successfully!";


$conn->close();


}


}


总结

本文通过一个任务管理系统的实战项目,介绍了PHP语言在项目开发中的应用。通过数据库设计、功能模块实现等方面,展示了PHP在构建企业级应用中的优势。在实际开发过程中,可以根据项目需求进行功能扩展和优化,以提高系统的性能和易用性。希望本文对您有所帮助。