使用PHP搭建个人博客网站

这篇文章为大家分享使用PHP搭建一个简单的个人博客网站,后台使用MySQL+php,前台使用HTML+CSS+javascript。

本文的博客系统包含用户创建个人博客、发布文章、创建文章分类、评论等,编辑文章支持MarkDown语法。

在这里插入图片描述

在开始之前,确保您已经搭建好了PHP环境。

博客系统的核心是数据库,我们需要设计一个相应的数据库结构。下面是本文博客系统的数据库设计:

1、users(用户表):
    id(主键,自增)
    email(邮箱)
    password(密码)
    nickname(昵称)
    avatar(头像)
    bio(简介)

2、posts(文章表):
    id(主键,自增)
    title(标题)
    content(内容)
    created(创建时间)
    user_id(用户ID)
    category_id(分类ID)
    status(状态)
    slug(别名)
    likes(点赞数)
    views(浏览数)

3、categories(分类表)
     id(主键,自增)
     slug(别名)
     name(分类名称)
4、comments(评论表)
    id
    author
    created
    content
    status
    post_id
    parent_id

二、设计好一套稳健的数据表之后,我们就可以对它进行操作和前端的展示,下面介绍一些主要的核心功能代码:

1、注册登录

function login(){
  //接受并校验
  //持久化
  //响应
  $email=$_POST['email'];
  $password=$_POST['password'];
  //连接数据库校验
 $conn=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
  if (!$conn) {
    exit('<h1>数据库连接失败</h1>');
  }
  $query=mysqli_query($conn,"select * from users where email = '{$email}' limit 1; ");

  if ( !$query) {
     $GLOBALS['message']='登录失败,请重试';
    return;
  }
  $user=mysqli_fetch_assoc($query);
  if (!$user) {
    //用户名不存在,但是提示邮箱密码不匹配
    $GLOBALS['message']='邮箱与密码不匹配1';
    return;
  }
  if ($user['password']!==$password) {
    //密码不正确
    $GLOBALS['message']='邮箱与密码不匹配2';
    return;
  }
  //存一个登录标识
  //$_SESSION['is_logged_in']=true;
  $_SESSION['current_login_user']=$user;
  //到这里了就可以跳转了
  if ($user['root']=='root') {
     header('Location: /admin/index.php');
  }else{
      $GLOBALS['message']='用户不存在!';
  }
}

2、发布文章

	function post_add(){
    global $current_user_id;
    if (empty($_POST['slug']) || empty($_POST['title']) || empty($_POST['created']) || empty($_POST['content']) || empty($_POST['status']) || empty($_POST['category'])) {
      $GLOBALS['success']= false ;
    $GLOBALS['message']='请完整填写所有内容';
      return;
    }
    $slug=xiu_fetch_one("select count(1) as count from posts where slug ='{$_POST['slug']}'");

    if ( $slug['count']>0) {
       $GLOBALS['success']= false ;
      $GLOBALS['message']= '别名已经存在,请修改别名' ;
      return;
    }

      $slug = $_POST['slug'];

      $title = $_POST['title'];

      $created = $_POST['created'];

      $content = $_POST['content'];

      $status = $_POST['status']; // 作者 ID 可以从当前登录用户信息中获取

      $user_id = (int)$current_user_id['id'];

     $category_id = $_POST['category'];

    // $affectd_rows=xiu_execute("insert into posts values (null,'{$_POST['slug']}','{$_POST['title']}','{$_POST['created']}','{$_POST['content']}',0,0,'{$_POST['status']}',{$current_user_id},{$_POST['category']});");
    // 
    $sql = sprintf(
        "insert into posts values (null, '%s','%s','%s','%s', 0, 0,'%s',1, %d)",
        $slug,
        $title,
        $created,
        $content,
        $status,
        $category_id
     );
    if (xiu_execute($sql)<=0) {
       $GLOBALS['success']= false ;
      $GLOBALS['message']= '添加失败';
    }else{
       $GLOBALS['success']= true ;
      $GLOBALS['message']= '添加成功';
    }
}

3、发布评论

$comments_reviewed=xiu_fetch_one('select value from options where id=8')['value'];
if ($comments_reviewed == 1) {
   $rows=xiu_execute("insert into comments values(null,'{$author}','{$time}','{$content}','held',{$id},null);");
}else{
   $rows=xiu_execute("insert into comments values(null,'{$author}','{$time}','{$content}','approved',{$id},null);");
}

以上就是如何使用 PHP 开发一个简单的博客系统。

如果您需要整套的博客系统源码,可以关注公众号【幽蓝计划】发送‘博客‘获取。