当前位置:首页 > PHP

php 个人博客实现

2026-02-16 07:32:08PHP

环境准备

安装PHP运行环境(如XAMPP、WAMP或单独安装Apache+PHP+MySQL)。确保PHP版本在7.4以上以获得更好的兼容性。MySQL用于存储博客数据,需提前创建数据库。

数据库设计

创建名为blog的数据库,设计核心表:

  • posts表:存储文章信息,字段包括id(主键)、title(标题)、content(内容)、created_at(发布时间)。
  • users表:管理后台用户,字段包括idusernamepassword(需加密存储)。
CREATE TABLE posts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    password VARCHAR(255) NOT NULL
);

核心功能实现

连接数据库
创建config.php文件管理数据库连接:

<?php
$host = 'localhost';
$dbname = 'blog';
$username = 'root';
$password = '';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Database connection failed: " . $e->getMessage());
}
?>

文章列表展示
创建index.php显示文章列表:

<?php
include 'config.php';
$stmt = $pdo->query("SELECT * FROM posts ORDER BY created_at DESC");
$posts = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<!DOCTYPE html>
<html>
<head>
    <title>My Blog</title>
</head>
<body>
    <?php foreach ($posts as $post): ?>
        <h2><?= htmlspecialchars($post['title']) ?></h2>
        <p><?= nl2br(htmlspecialchars($post['content'])) ?></p>
        <small><?= $post['created_at'] ?></small>
        <hr>
    <?php endforeach; ?>
</body>
</html>

后台管理功能

用户登录验证
创建login.php处理登录逻辑(使用password_hash存储密码):

session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    include 'config.php';
    $username = $_POST['username'];
    $password = $_POST['password'];

    $stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
    $stmt->execute([$username]);
    $user = $stmt->fetch();

    if ($user && password_verify($password, $user['password'])) {
        $_SESSION['user_id'] = $user['id'];
        header("Location: admin.php");
    } else {
        echo "Invalid credentials";
    }
}

文章发布功能
admin.php中实现表单提交:

php 个人博客实现

<?php
session_start();
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    include 'config.php';
    $title = $_POST['title'];
    $content = $_POST['content'];

    $stmt = $pdo->prepare("INSERT INTO posts (title, content) VALUES (?, ?)");
    $stmt->execute([$title, $content]);
    header("Location: admin.php");
}
?>

安全与优化

  • 输入过滤:始终使用htmlspecialchars和预处理语句防止XSS和SQL注入。
  • 密码加密:注册时使用password_hash,登录时用password_verify校验。
  • 文件结构:建议按功能分目录(如/public放前端文件,/includes放PHP类库)。

扩展建议

  • 添加Markdown编辑器(如SimpleMDE)提升内容编辑体验。
  • 实现分页功能(SQL中使用LIMITOFFSET)。
  • 部署时配置HTTPS并限制敏感目录访问(如通过.htaccess)。

标签: 个人博客
分享给朋友:

相关文章

vue.js实现博客

vue.js实现博客

Vue.js 实现博客的关键步骤 项目初始化与基础配置 使用 Vue CLI 或 Vite 创建项目,安装必要依赖如 vue-router、axios 和状态管理库(如 Pinia/Vuex)。配置路…

css博客制作

css博客制作

CSS博客制作指南 基础结构搭建 使用HTML5的语义化标签构建博客框架,如<header>、<nav>、<article>、<section>和<…

vue博客实现

vue博客实现

搭建基础项目结构 使用 Vue CLI 快速初始化项目,确保已安装 Node.js 和 npm/yarn。执行以下命令创建项目: vue create vue-blog 选择默认配置或手动配置(推荐…

css制作博客

css制作博客

CSS 制作博客的关键步骤 布局设计 使用 display: flex 或 display: grid 构建响应式布局,主容器设置 max-width: 1200px 并居中。侧边栏宽度建议 25%,…

博客css制作

博客css制作

博客CSS制作方法 基础样式设置 使用CSS为博客设置统一的字体、颜色和间距。例如: body { font-family: 'Arial', sans-serif; line-heig…

博客系统php实现

博客系统php实现

实现PHP博客系统的基本步骤 搭建一个PHP博客系统需要掌握PHP基础、MySQL数据库操作以及前端技术(HTML/CSS/JavaScript)。以下是核心实现方法: 数据库设计 创建名为blog…