PHP “阅后即焚” 平台:临时内容创建与自动销毁系统

本文共计3311字,阅读大约12分钟。

2024/12/28 更新日志

新增功能

  • 文件上传:现在支持文件上传功能。允许上传的文件类型包括:jpg, jpeg, png, gif, pdf, 和 zip。文件名:create_paste.php(第30行)。
$allowedExtensions = ['jpg', 'jpeg', 'png', 'gif', 'pdf', 'zip']; // 允许的文件类型

平台概述

“阅后即焚”平台旨在为用户提供创建临时文本内容的服务,并在满足特定条件(如时间或访问次数)后自动销毁这些内容。为了增强隐私保护,用户还可以选择设置访问密码。

平台运作流程分为三个主要步骤:

  1. 用户通过前端界面提交内容及设定销毁条件;
  2. 后端系统保存内容并处理其销毁逻辑;
  3. 用户根据提供的链接查看内容,同时系统执行销毁操作。

前端设计与交互

页面布局

前端页面采用了HTML5、Bootstrap和jQuery技术栈来构建响应式的用户界面,包含导航栏、表单输入区、结果展示区以及页脚等元素。

表单代码片段

<form id="pasteForm">
    <!-- 内容输入 -->
    <div class="form-group">
        <label for="content">内容</label>
        <textarea class="form-control" id="content" name="content" rows="5" required></textarea>
    </div>
    <!-- 密码选项 -->
    <div class="form-group">
        <label for="password">密码(可选)</label>
        <input type="text" class="form-control" id="password" name="password">
    </div>
    <!-- 销毁条件选择 -->
    <div class="form-group">
        <label>过期设置</label>
        <div class="form-row">
            <div class="col-md-6">
                <div class="form-check">
                    <input class="form-check-input" type="radio" name="expire_condition" value="time" id="expireConditionTime" checked>
                    <label class="form-check-label" for="expireConditionTime">销毁时间(分钟)</label>
                    <input type="number" name="expiration_minutes" class="form-control mt-2" placeholder="例如: 60">
                </div>
            </div>
            <div class="col-md-6">
                <d

AJAX交互

利用jQuery库实现AJAX请求,拦截表单提交事件,向服务器发送数据并处理返回的信息。

$('#pasteForm').submit(function(e) {
    e.preventDefault();
    $.ajax({
        type: 'POST',
        url: 'create_paste.php',
        data: $(this).serialize(),
        success: function(response) {
            // 处理成功响应
        }
    });
});

后端架构解析

数据存储与验证

后端采用PHP语言和MySQL数据库进行数据管理。主要职责包括接收前端提交的数据、校验信息合法性、将内容存入数据库,并根据用户设定的时间或访问次数限制来控制内容的生命周期。

PHP代码片段

// 获取并处理来自前端的数据
$content = $_POST['content'];
$password = $_POST['password'] ? password_hash($_POST['password'], PASSWORD_DEFAULT) : null;
$expiration_minutes = isset($_POST['expire_condition']) && $_POST['expire_condition'] == 'time' ? $_POST['expiration_minutes'] : null;
$max_views = isset($_POST['expire_condition']) && $_POST['expire_condition'] == 'views' ? $_POST['max_views'] : null;
$identifier = bin2hex(random_bytes(8)); // 创建唯一标识符

// 连接数据库并将内容保存到pastes表中
$db = connect();
$stmt = $db->prepare("INSERT INTO pastes (content, password, expiration_minutes, max_views, identifier) VALUES (?, ?, ?, ?, ?)");
$stmt->execute([$content, $password, $expiration_minutes, $max_views, $identifier]);

// 返回JSON格式的成功响应
$response = [
    'success' => true,
    'link' => $link,
    'expiration_minutes' => $expiration_minutes,
    'max_views' => $max_views,
    'password_set' => $password ? $_POST['password'] : null
];
echo json_encode($response);

自动销毁机制

当用户尝试访问某条内容时,系统会检查该内容是否已达到预设的销毁条件(基于时间和/或访问次数),一旦条件达成,则立即删除对应记录。

if ($paste['expiration_minutes'] !== null) {
    $createdTime->modify("+{$paste['expiration_minutes']} minutes");
    if ($currentTime > $createdTime) {
        // 删除过期内容
        $db->prepare("DELETE FROM pastes WHERE identifier = :identifier")->execute([':identifier' => $identifier]);
        exit('该内容已过期。');
    }
}

内容访问逻辑

安全性保障

在访问受密码保护的内容之前,用户必须正确输入密码。系统使用password_verify函数确保输入的密码匹配存储的哈希值。

if ($paste['password']) {
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $entered_password = $_POST['password'];
        if (!password_verify($entered_password, $paste['password'])) {
            exit('密码不正确。');
        }
    } else {
        // 提示用户输入密码
    }
}

内容呈现

确认访问合法后,系统更新访问计数,并以安全的方式显示内容。

// 更新访问次数
$db->prepare("UPDATE pastes SET current_views = current_views + 1 WHERE identifier = :identifier")->execute([':identifier' => $identifier]);

// 显示内容
<pre><?php echo htmlspecialchars($paste['content']); ?></pre>

结论

综上所述,“阅后即焚”平台提供了一种简便且安全的方法来分享临时性或敏感信息。它不仅允许用户灵活地定义内容的有效期限,还通过多种措施确保了信息的安全性和隐私性。这种设计非常适合需要快速传递但又不想长期留存的信息场景。


展示截图

图片[1]-PHP “阅后即焚” 平台:临时内容创建与自动销毁系统-大鹏资源网-提供丰富的插件软件资源和详细教程,专注技术分享与学习!
图片[2]-PHP “阅后即焚” 平台:临时内容创建与自动销毁系统-大鹏资源网-提供丰富的插件软件资源和详细教程,专注技术分享与学习!

安装指南

要部署本平台,请先下载项目文件包,并将其上传至您的网站根目录下进行解压即可完成安装。

Paste-main.zip
文件大小:
74 kb
© 版权声明
THE END
点赞6赞赏分享
评论 抢沙发

请登录后发表评论

    暂无评论内容