当前位置:首页 > PHP

php实现待办

2026-02-14 19:00:10PHP

PHP 实现待办事项功能

使用 PHP 实现待办事项功能需要结合数据库操作和前端交互。以下是一个简单的实现方法:

数据库设计

创建一张 todos 表,包含以下字段:

  • id: 主键,自增
  • task: 任务内容
  • completed: 完成状态,默认为 0
  • created_at: 创建时间
CREATE TABLE todos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    task VARCHAR(255) NOT NULL,
    completed TINYINT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

连接数据库

$host = 'localhost';
$dbname = 'todo_db';
$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());
}

添加待办事项

if (isset($_POST['add_task'])) {
    $task = trim($_POST['task']);

    if (!empty($task)) {
        $stmt = $pdo->prepare("INSERT INTO todos (task) VALUES (:task)");
        $stmt->execute([':task' => $task]);
    }
}

显示待办事项

$stmt = $pdo->query("SELECT * FROM todos ORDER BY created_at DESC");
$todos = $stmt->fetchAll(PDO::FETCH_ASSOC);

标记完成/未完成

if (isset($_GET['toggle'])) {
    $id = $_GET['toggle'];
    $stmt = $pdo->prepare("UPDATE todos SET completed = 1 - completed WHERE id = :id");
    $stmt->execute([':id' => $id]);
    header("Location: index.php");
    exit();
}

删除待办事项

if (isset($_GET['delete'])) {
    $id = $_GET['delete'];
    $stmt = $pdo->prepare("DELETE FROM todos WHERE id = :id");
    $stmt->execute([':id' => $id]);
    header("Location: index.php");
    exit();
}

前端示例

<form method="post">
    <input type="text" name="task" placeholder="添加新任务..." required>
    <button type="submit" name="add_task">添加</button>
</form>

<ul>
    <?php foreach ($todos as $todo): ?>
    <li>
        <span style="<?= $todo['completed'] ? 'text-decoration: line-through' : '' ?>">
            <?= htmlspecialchars($todo['task']) ?>
        </span>
        <a href="?toggle=<?= $todo['id'] ?>"><?= $todo['completed'] ? '未完成' : '完成' ?></a>
        <a href="?delete=<?= $todo['id'] ?>">删除</a>
    </li>
    <?php endforeach; ?>
</ul>

安全注意事项

  1. 使用预处理语句防止 SQL 注入
  2. 对输出内容使用 htmlspecialchars() 防止 XSS 攻击
  3. 重要操作应验证用户权限
  4. 考虑使用 CSRF 令牌保护表单

扩展功能建议

  1. 添加任务分类功能
  2. 实现任务优先级
  3. 添加截止日期提醒
  4. 实现用户系统,使每个用户有自己的待办列表
  5. 添加搜索和过滤功能

这个基本实现可以进一步扩展为完整的待办事项应用。根据需求可以调整数据库结构和功能逻辑。

php实现待办

标签: php
分享给朋友:

相关文章

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'loca…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 &l…

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置…

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE T…

php实现排序

php实现排序

PHP 数组排序方法 PHP 提供了多种内置函数用于数组排序,适用于不同的排序需求。以下是常见的排序方法: 按值升序排序 sort() 函数对数组按值升序排序,重置键名(索引数组适用): $num…