当前位置:首页 > PHP

php实现许愿墙完整版

2026-01-29 07:42:09PHP

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;

数据库连接配置

创建config.php文件存放数据库连接信息:

<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', 'password');
define('DB_NAME', 'wishwall');
?>

核心功能实现

提交愿望功能 创建submit.php处理表单提交:

php实现许愿墙完整版

require 'config.php';
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    $content = htmlspecialchars($_POST['content']);
    $username = htmlspecialchars($_POST['username']);
    $color = $_POST['color'];
    $ip = $_SERVER['REMOTE_ADDR'];

    $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    $stmt = $conn->prepare("INSERT INTO wishes(content, username, color, ip) VALUES(?, ?, ?, ?)");
    $stmt->bind_param("ssss", $content, $username, $color, $ip);
    $stmt->execute();
    header("Location: index.php");
}

显示愿望功能 创建index.php显示所有愿望:

require 'config.php';
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$result = $conn->query("SELECT * FROM wishes ORDER BY time DESC");

while($row = $result->fetch_assoc()){
    echo '<div class="wish" style="background:'.$row['color'].'">';
    echo '<p>'.$row['content'].'</p>';
    echo '<span>'.$row['username'].' '.$row['time'].'</span>';
    echo '</div>';
}

前端界面设计

HTML结构

php实现许愿墙完整版

<!DOCTYPE html>
<html>
<head>
    <title>许愿墙</title>
    <style>
        .wish { 
            width: 200px; 
            padding: 15px; 
            margin: 10px; 
            float: left;
            border-radius: 5px;
            box-shadow: 2px 2px 5px #888;
        }
    </style>
</head>
<body>
    <form action="submit.php" method="post">
        <textarea name="content" required></textarea>
        <input type="text" name="username" placeholder="你的名字" required>
        <select name="color">
            <option value="#FFCCCC">粉色</option>
            <option value="#CCFFCC">绿色</option>
            <option value="#CCCCFF">蓝色</option>
        </select>
        <button type="submit">许愿</button>
    </form>

    <div id="wishwall">
        <?php include 'index.php'; ?>
    </div>
</body>
</html>

安全增强措施

添加防XSS和SQL注入防护:

// 对所有用户输入进行过滤
function clean_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

// 使用预处理语句防止SQL注入
$stmt = $conn->prepare("INSERT INTO wishes VALUES(NULL, ?, ?, ?, NOW(), ?)");
$stmt->bind_param("ssss", $content, $username, $color, $ip);

分页功能实现

修改index.php添加分页支持:

$per_page = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$start = ($page-1) * $per_page;

$total = $conn->query("SELECT COUNT(*) FROM wishes")->fetch_row()[0];
$pages = ceil($total / $per_page);

$result = $conn->query("SELECT * FROM wishes ORDER BY time DESC LIMIT $start, $per_page");

// 显示分页链接
for($i=1; $i<=$pages; $i++){
    echo '<a href="?page='.$i.'">'.$i.'</a> ';
}

完整项目结构

/wishwall
├── config.php       # 数据库配置
├── index.php        # 显示愿望
├── submit.php       # 处理提交
├── style.css        # 样式文件
└── install.sql      # 数据库初始化脚本

该实现包含完整的许愿墙功能,包括愿望提交、显示、分页和安全防护措施。可根据需要进一步扩展功能,如愿望审核、点赞评论等。

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

相关文章

php实现打印功能

php实现打印功能

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

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE o…

php实现增删改查

php实现增删改查

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

php记住密码怎么实现

php记住密码怎么实现

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

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素(不移…

php验证码实现

php验证码实现

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