当前位置:首页 > PHP

php实现许愿墙完整版

2026-02-28 04:54:58PHP

以下是PHP实现许愿墙的完整版方案,包含核心功能模块和代码示例:

数据库设计

创建MySQL表存储许愿数据:

CREATE TABLE `wishes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` varchar(255) NOT NULL,
  `username` varchar(50) NOT NULL,
  `color` varchar(20) NOT NULL,
  `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `ip` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

前端页面布局

基础HTML结构包含表单和展示区:

<div class="wish-container">
  <form method="post" action="post_wish.php">
    <textarea name="content" placeholder="写下你的愿望..."></textarea>
    <input type="text" name="username" placeholder="你的昵称">
    <select name="color">
      <option value="yellow">黄色</option>
      <option value="blue">蓝色</option>
      <option value="pink">粉色</option>
    </select>
    <button type="submit">许愿</button>
  </form>

  <div class="wish-wall">
    <?php include 'get_wishes.php'; ?>
  </div>
</div>

后端处理逻辑

接收表单提交的post_wish.php:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    require 'db_connect.php';

    $content = htmlspecialchars($_POST['content']);
    $username = htmlspecialchars($_POST['username']);
    $color = $_POST['color'];
    $ip = $_SERVER['REMOTE_ADDR'];

    $stmt = $pdo->prepare("INSERT INTO wishes (content, username, color, ip) VALUES (?, ?, ?, ?)");
    $stmt->execute([$content, $username, $color, $ip]);

    header("Location: index.php");
    exit;
}
?>

数据展示处理

get_wishes.php查询并显示愿望:

<?php
require 'db_connect.php';

$stmt = $pdo->query("SELECT * FROM wishes ORDER BY time DESC");
while ($row = $stmt->fetch()) {
    echo '<div class="wish-item" style="background:'.$row['color'].'">';
    echo '<p>'.$row['content'].'</p>';
    echo '<span>'.$row['username'].' • '.$row['time'].'</span>';
    echo '</div>';
}
?>

数据库连接配置

db_connect.php配置文件:

<?php
$host = 'localhost';
$db   = 'wishwall';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];

try {
    $pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
    throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
?>

样式美化

基础CSS样式示例:

.wish-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

.wish-wall {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 15px;
    margin-top: 30px;
}

.wish-item {
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.wish-item p {
    margin: 0 0 10px 0;
    word-break: break-word;
}

.wish-item span {
    font-size: 12px;
    color: #666;
}

安全增强措施

添加防XSS和基础防护:

// 在post_wish.php开头添加
session_start();
if (empty($_POST['content']) || strlen($_POST['content']) > 255) {
    $_SESSION['error'] = '愿望内容不能为空或超过255字';
    header("Location: index.php");
    exit;
}

// 添加频率限制
$stmt = $pdo->prepare("SELECT COUNT(*) FROM wishes WHERE ip = ? AND time > DATE_SUB(NOW(), INTERVAL 1 HOUR)");
$stmt->execute([$_SERVER['REMOTE_ADDR']]);
if ($stmt->fetchColumn() > 5) {
    $_SESSION['error'] = '操作过于频繁,请稍后再试';
    header("Location: index.php");
    exit;
}

扩展功能建议

  1. 增加AJAX无刷新提交
  2. 添加图片上传功能
  3. 实现愿望点赞系统
  4. 开发后台审核功能
  5. 添加分页加载机制

完整项目应包含错误处理、输入验证和日志记录等功能模块,以上代码提供了基础实现框架。实际部署时需要根据服务器环境调整数据库连接参数和安全配置。

php实现许愿墙完整版

标签: 完整版php
分享给朋友:

相关文章

php实现文件上传

php实现文件上传

文件上传的基本实现 在PHP中实现文件上传需要使用$_FILES超全局数组处理上传的文件数据。表单必须设置enctype="multipart/form-data"属性,并采用POST方法提交。 创…

php实现文件下载

php实现文件下载

PHP 实现文件下载的方法 使用 header() 函数强制下载 设置正确的 HTTP 头信息,强制浏览器下载文件而不是直接打开。 $file = 'path/to/file.pdf'; if (f…

php实现搜索功能

php实现搜索功能

实现基础搜索功能 使用PHP和MySQL实现基础的搜索功能需要结合表单提交与数据库查询。创建一个HTML表单用于接收用户输入的搜索关键词,通过PHP处理表单数据并查询数据库。 // 搜索表单 (HT…

php实现打印功能

php实现打印功能

PHP 实现打印功能的方法 PHP 可以通过多种方式实现打印功能,具体取决于打印的目标(如打印机、PDF、网页等)和需求(如直接打印、生成打印预览等)。以下是几种常见的实现方式: 使用 JavaSc…

php记住密码怎么实现

php记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注…