当前位置:首页 > PHP

php实现发布文章

2026-02-16 20:21:36PHP

实现文章发布功能

创建数据库表结构 在MySQL中创建一个articles表用于存储文章数据:

CREATE TABLE `articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `content` text NOT NULL,
  `author` varchar(100) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

创建发布表单

设计一个HTML表单用于提交文章内容:

php实现发布文章

<form action="publish.php" method="post">
  <div>
    <label for="title">标题:</label>
    <input type="text" id="title" name="title" required>
  </div>
  <div>
    <label for="content">内容:</label>
    <textarea id="content" name="content" rows="10" required></textarea>
  </div>
  <div>
    <label for="author">作者:</label>
    <input type="text" id="author" name="author" required>
  </div>
  <button type="submit">发布文章</button>
</form>

处理表单提交

创建publish.php文件处理表单提交:

<?php
// 数据库连接配置
$host = 'localhost';
$dbname = 'your_database';
$username = 'your_username';
$password = 'your_password';

try {
  $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $title = htmlspecialchars($_POST['title']);
    $content = htmlspecialchars($_POST['content']);
    $author = htmlspecialchars($_POST['author']);

    $stmt = $pdo->prepare("INSERT INTO articles (title, content, author) VALUES (:title, :content, :author)");
    $stmt->bindParam(':title', $title);
    $stmt->bindParam(':content', $content);
    $stmt->bindParam(':author', $author);

    $stmt->execute();

    header('Location: success.php');
    exit;
  }
} catch(PDOException $e) {
  die("数据库连接失败: " . $e->getMessage());
}
?>

安全增强措施

添加CSRF防护和输入验证:

php实现发布文章

// 在表单顶部添加CSRF令牌
session_start();
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
<input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">
// 在publish.php中添加CSRF验证
if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
    die('CSRF验证失败');
}

文件上传支持

如需支持图片上传,可以添加文件上传功能:

if (isset($_FILES['image']) && $_FILES['image']['error'] === UPLOAD_ERR_OK) {
    $uploadDir = 'uploads/';
    $fileName = uniqid() . '_' . basename($_FILES['image']['name']);
    $uploadFile = $uploadDir . $fileName;

    if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadFile)) {
        // 将文件路径保存到数据库
        $imagePath = $uploadFile;
    }
}

显示发布结果

创建success.php显示发布成功信息:

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
    <title>发布成功</title>
</head>
<body>
    <h1>文章发布成功</h1>
    <p>您的文章已成功发布。</p>
    <a href="index.php">返回首页</a>
</body>
</html>

标签: 文章php
分享给朋友:

相关文章

php实现搜索功能

php实现搜索功能

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

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

php 实现自动收货

php 实现自动收货

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

php实现队列

php实现队列

PHP实现队列的方法 队列是一种先进先出(FIFO)的数据结构,PHP可以通过多种方式实现队列功能。 使用数组模拟队列 PHP数组可以模拟队列的基本操作,通过array_push和array_sh…

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $n…

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…