使用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 开发一个简单的博客系统。
如果您需要整套的博客系统源码,可以关注公众号【幽蓝计划】发送‘博客‘获取。
上一篇: 前端,HTTP协议,
下一篇: 基于PHP的仓库库存