🗣 Wd提问: PHP源码任务系统
🤖 Ai回答: 创建一个基于 PHP 的任务系统(Task Management System)可以用于管理用户任务、待办事项、项目进度等。下面是一个简单的 PHP 源码任务系统 示例,使用原生 PHP + MySQL 实现,无需框架,适合学习或小型项目使用。
🧩 功能概览
用户注册与登录
创建、查看、更新、删除任务
任务状态管理(待办 / 进行中 / 已完成)
任务分类(可选)
响应式基础前端(HTML + CSS)
🗂️ 文件结构
task-system/
├── config/
│ └── db.php 数据库连接配置
├── includes/
│ └── auth.php 登录验证逻辑
├── assets/
│ ├── css/style.css 样式文件
│ └── js/script.js 可选 JS 脚本
├── register.php 用户注册页面
├── login.php 用户登录页面
├── logout.php 用户登出
├── index.php 主页 显示所有任务
├── add_task.php 添加新任务
├── edit_task.php 编辑任务
├── delete_task.php 删除任务
└── database.sql 数据库建表语句
✅ 第一步:数据库设置
`database.sql`
sql
创建数据库
CREATE DATABASE IF NOT EXISTS task_system;
USE task_system;
用户表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
任务表
CREATE TABLE tasks (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
title VARCHAR(100) NOT NULL,
description TEXT,
status ENUM('pending', 'in_progress', 'completed') DEFAULT 'pending',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
导入到 MySQL:
bash
mysql -u root -p < database.sql
🔐 第二步:数据库连接配置
`config/db.php`
php
<?php
$host = 'localhost';
$dbname = 'task_system';
$username = 'root'; // 修改为你自己的数据库用户名
$password = ''; // 修改密码
try {
$pdo = new PDO(mysql:host=$host;dbname=$dbname, $username, $password);
$pdo-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die(连接失败: 、$e-getMessage());
}
?
🔒 登录认证辅助函数
`includes/auth.php`
php
<?php
session_start();
function isLoggedIn() {
return isset($_SESSION['user_id']);
}
function requireLogin() {
if (!isLoggedIn()) {
header(Location: login.php);
exit();
}
}
function getUserID() {
return $_SESSION['user_id'] ?? null;
}
?
📝 注册页面
`register.php`
php
<?php
require 'config/db.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = trim($_POST['username']);
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
try {
$stmt = $pdo-prepare(INSERT INTO users (username, password) VALUES (?, ?));
if ($stmt-execute([$username, $password])) {
header(Location: login.php);
exit();
} else {
$error = 注册失败,请重试。;
}
} catch (PDOException $e) {
if ($e-getCode() == 23000) {
$error = 用户名已存在!;
} else {
$error = 服务器错误: 、$e-getMessage();
}
}
}
?
<!DOCTYPE html
<html lang=zh
<head
<meta charset=UTF-8
<title注册</title
<link rel=stylesheet href=assets/css/style.css
</head
<body
<div class=container
<h2注册账户</h2
<?php if (isset($error)): ?
<p style=color:red;<?= $error ?</p
<?php endif; ?
<form method=post
<input type=text name=username placeholder=用户名 required<br
<input type=password name=password placeholder=密码 required<br
<button type=submit注册</button
</form
<p已有账号?<a href=login.php登录</a</p
</div
</body
</html
🔑 登录页面
`login.php`
php
<?php
require 'config/db.php';
require 'includes/auth.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = trim($_POST['username']);
$password = $_POST['password'];
$stmt = $pdo-prepare(SELECT id, password FROM users WHERE username = ?);
$stmt-execute([$username]);
$user = $stmt-fetch();
if ($user && password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
header(Location: index.php);
exit();
} else {
$error = 用户名或密码错误!;
}
}
?
<!DOCTYPE html
<html lang=zh
<head
<meta charset=UTF-8
<title登录</title
<link rel=stylesheet href=assets/css/style.css
</head
<body
<div class=container
<h2登录</h2
<?php if (isset($error)): ?
<p style=color:red;<?= $error ?</p
<?php endif; ?
<form method=post
<input type=text name=username placeholder=用户名 required<br
<input type=password name=password placeholder=密码 required<br
<button type=submit登录</button
</form
<p没有账号?<a href=register.php注册</a</p
</div
</body
</html
🏠 首页:显示任务列表
`index.php`
php
<?php
require 'config/db.php';
require 'includes/auth.php';
requireLogin();
$user_id = getUserID();
// 获取任务
$stmt = $pdo-prepare(SELECT * FROM tasks WHERE user_id = ? ORDER BY created_at DESC);
$stmt-execute([$user_id]);
$tasks = $stmt-fetchAll();
?
<!DOCTYPE html
<html lang=zh
<head
<meta charset=UTF-8
<title我的任务</title
<link rel=stylesheet href=assets/css/style.css
</head
<body
<div class=container
<h2我的任务</h2
<a href=add_task.php添加新任务</a |
<a href=logout.php登出</a
<?php if ($tasks): ?
<table
<tr
<th标题</th
<th描述</th
<th状态</th
<th操作</th
</tr
<?php foreach ($tasks as $task): ?
<tr
<td<?= htmlspecialchars($task['title']) ?</td
<td<?= htmlspecialchars($task['description']) ?</td
<td<?= ['pending' = '待办', 'in_progress' = '进行中', 'completed' = '已完成'][$task['status']] ?</td
<td
<a href=edit_task.php?id=<?= $task['id'] ?编辑</a |
<a href=delete_task.php?id=<?= $task['id'] ? onclick=return confirm('确定删除?')删除</a
</td
</tr
<?php endforeach; ?
</table
<?php else: ?
<p暂无任务,<a href=add_task.php去添加一个</a。</p
<?php endif; ?
</div
</body
</html
➕ 添加任务
`add_task.php`
php
<?php
require 'config/db.php';
require 'includes/auth.php';
requireLogin();
$user_id = getUserID();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$title = trim($_POST['title']);
$description = trim($_POST['description']);
$status = $_POST['status'];
if (empty($title)) {
$error = 任务标题不能为空!;
} else {
$stmt = $pdo-prepare(INSERT INTO tasks (user_id, title, description, status) VALUES (?, ?, ?, ?));
$stmt-execute([$user_id, $title, $description, $status]);
header(Location: index.php);
exit();
}
}
?
<!DOCTYPE html
<html lang=zh
<head
<meta charset=UTF-8
<title添加任务</title
<link rel=stylesheet href=assets/css/style.css
📣 商家广告 :
👍
0
👎
IP地址: 139.9.138.156
搜索次数: 0
提问时间: 2025-11-05 22:24:38
🛒 域名购买 :
wk.gs pmmm.com.cn 815.net.cn 6444.com.cn ng.cx jjxs.cn xhkt.net 41.gold lt.gs rj.biz
❓️ 热门提问 :
网站测速服务器响应 MySQL源码tpcc VPS速度监控 naas服务器 不同品牌服务器 便宜些的云主机 贵州idc 机房设计规划 远程主机租赁 ip名是什么 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
a.tw.cn 40.gold ev.ha.cn vtol.tj.cn 9.bj.cn qkpe.cn 757.net.cn wqzd.cn ev.yn.cn kyry.cn
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
検索エンジンのソースコード
Suchmaschinen in China
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。