当前位置:首页 > PHP

php实现发帖

2026-02-13 16:35:05PHP

PHP 实现发帖功能

数据库表设计

创建名为 posts 的表,包含以下字段:

  • id:主键,自增
  • title:帖子标题,VARCHAR 类型
  • content:帖子内容,TEXT 类型
  • created_at:发帖时间,TIMESTAMP 类型

SQL 语句示例:

CREATE TABLE posts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

创建发帖表单

HTML 表单代码示例:

<form action="submit_post.php" method="post">
    <label for="title">标题:</label>
    <input type="text" id="title" name="title" required>

    <label for="content">内容:</label>
    <textarea id="content" name="content" required></textarea>

    <button type="submit">发布</button>
</form>

处理表单提交

PHP 处理代码 (submit_post.php):

<?php
// 连接数据库
$db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');

// 获取表单数据
$title = $_POST['title'];
$content = $_POST['content'];

// 插入数据到数据库
$stmt = $db->prepare("INSERT INTO posts (title, content) VALUES (:title, :content)");
$stmt->bindParam(':title', $title);
$stmt->bindParam(':content', $content);
$stmt->execute();

// 重定向到帖子列表页
header('Location: posts.php');
exit;
?>

显示帖子列表

PHP 显示代码 (posts.php):

php实现发帖

<?php
// 连接数据库
$db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');

// 查询所有帖子
$stmt = $db->query("SELECT * FROM posts ORDER BY created_at DESC");
$posts = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<!DOCTYPE html>
<html>
<head>
    <title>帖子列表</title>
</head>
<body>
    <h1>帖子列表</h1>
    <a href="new_post.php">新建帖子</a>

    <?php foreach ($posts as $post): ?>
        <div class="post">
            <h2><?php echo htmlspecialchars($post['title']); ?></h2>
            <p><?php echo nl2br(htmlspecialchars($post['content'])); ?></p>
            <small><?php echo $post['created_at']; ?></small>
        </div>
    <?php endforeach; ?>
</body>
</html>

安全注意事项

  • 使用预处理语句防止 SQL 注入
  • 对输出内容使用 htmlspecialchars() 防止 XSS 攻击
  • 对多行文本使用 nl2br() 保持换行格式
  • 设置数据库连接字符集为 UTF-8

扩展功能建议

  • 添加用户认证系统
  • 实现帖子分类功能
  • 添加图片上传功能
  • 实现帖子编辑和删除功能

标签: 发帖php
分享给朋友:

相关文章

php 实现登录

php 实现登录

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

php实现静态

php实现静态

静态化实现方法 PHP实现静态化主要通过生成HTML文件或缓存机制来减少服务器动态解析的开销。以下是几种常见方法: 生成静态HTML文件 通过file_put_contents()将动态内容保存为H…

php无限分类的实现

php无限分类的实现

PHP无限分类的实现 无限分类是一种常见的树形结构数据组织方式,适用于商品分类、菜单管理、地区选择等场景。以下是几种实现方法: 递归实现法 递归是最直观的实现方式,通过函数自身调用来遍历子分类。数据…

php实现https

php实现https

PHP 实现 HTTPS 请求 在 PHP 中实现 HTTPS 请求,可以通过多种方式完成,包括使用内置函数、cURL 扩展或第三方库。以下是几种常见的方法: 使用 file_get_content…

php 实现面包屑导航

php 实现面包屑导航

实现面包屑导航的方法 面包屑导航(Breadcrumb Navigation)是一种常见的网站导航方式,用于显示用户当前页面的路径。以下是几种在 PHP 中实现面包屑导航的方法。 基于 URL 路径…

php 实现锁

php 实现锁

PHP 实现锁的常见方法 文件锁(flock) 利用 flock 函数对文件进行独占锁定,适用于单机环境。 $fp = fopen("lockfile.lock", "w+"); if (flock…