基于PHP实现个人博客网站

2022-04-19 06:29:25
目录
一、运行展示二、功能说明三、核心代码讲解1、创建数据库2、初始化数据3、登录验证4、用户注册5、发表博客6、更新博客7、删除博客8、发表评论9、修改密码10、修改昵称11、管理员删除用户四、运行环境五、运行说明

一、运行展示

基于PHP实现个人博客网站

二、功能说明

未登录用户:

仅可以浏览所有博客的内容。

已登录用户:

浏览所有博客的内容;发表博客;删除自己的博客;修改自己的博客;在任一博客下评论;修改昵称和密码。

管理员:

可以执行普通用户的所有功能;修改任一博客的内容;删除任一博客;删除任一用户。

网站平台功能补充说明:

动态显示博客信息(如当前所有博客数量,用户个人博客数量,以及博客内容信息);博客和评论发表的时间遵循北京时间;登录时只要输入账号密码即可,后台会自动判断该账号为普通用户还是管理员,进而推送到对应的网页。

三、核心代码讲解

1、创建数据库

drop database  if  exists grblog;CREATE DATABASE `grblog` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;USE grblog;-- 人员信息CREATE TABLE admin(    adminMail varchar(25) primary key,    adminName varchar(10) not null,    passWord varchar(15) not null,    level enum('user', 'super'));-- 博客信息CREATE TABLE blog(    blogNo int primary key AUTO_INCREMENT,    blogTopic varchar(50) not null,    blogContent varchar(5000) not null,    adminMail varchar(25) not null,    importDate date not null ,    foreign key (adminMail) references admin(adminMail));-- 评论信息CREATE TABLE comment(    commentNo int primary key AUTO_INCREMENT,    commentContent varchar(500) not null,    adminMail varchar(25) not null,    blogNo int,    commentDate datetime not null ,    foreign key (adminMail) references admin(adminMail),    foreign key (blogNo) references blog(blogNo));

2、初始化数据

INSERT INTO `admin` (`adminMail`,`adminName`, `passWord`, `level`) VALUES ('2015100@126.com', '不脱发的程序猿', 'pwdpwd', 'user'),('2015333@163.com', '涛歌依旧', 'pwdpwd', 'user'),('2015222@qq.com', 'ThinkWon', 'pwdpwd', 'user'),('2015111@qq.com', 'SAP剑客', 'pwdpwd', 'user'),('2015201@126.com', '敖 丙', 'pwdpwd', 'user'),('2015202@126.com', '>=FreeMan=<', 'pwdpwd', 'user'),('2015203@126.com', '布客飞龙', 'pwdpwd', 'user'),('2015101@126.com', 'Riveore', 'pwdpwd', 'user'),('2015102@1256.com', '打杂人', 'pwdpwd', 'user'),('super@126.com', '超级管理员', 'superpwd', 'super');INSERT INTO `blog` (`blogNo`,`blogTopic`, `blogContent`, `adminMail`, `importDate`) VALUES (1, 'python开发人员常犯的几个重大错误', 'Python 无疑是当今使用最广泛的编程语言,特别是进入人工智能时代,已经成为人工智能开发的主要语言,甚至小学三ript>';    }}else{    echo '<script>alert("请先登录!");location="signin.php";</script>';}?>

6、更新博客

这里是以普通用户为例,首先判断是否已经登录 ,接着判断是否具有更改博客的权限(非自己博客不能更改),最后判断输入的数据是否满足格式需求(是否为空)

<?phpsession_start();?><meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0"><?phpif ($_SESSION["adminName"] != "") {    $blogTopic = $_REQUEST['blogTopic']; //博客主题    $adminMail = $_SESSION["adminMail"];    $blogContent = $_REQUEST["blogcontent"];    $blogno = $_SESSION['no_blog'];    require_once "config.inc.php";    $demand = "select adminMail from blog where blogNo = '$blogno'";    $res = mysqli_query($mysqli, $demand);    $power = mysqli_fetch_row($res);    $mail = $power[0];    if ($mail == $adminMail){        //插入BLOG信息命令        $demand2 = "UPDATE `blog` SET `blogTopic` = '$blogTopic',`blogContent` = '$blogContent' WHERE `blog`.`blogNo` ='$blogno'";        $res2 = mysqli_query($mysqli, $demand2);        if ($res2) { //跳转页面            mysqli_close($mysqli); //查询已经结束,在这里关闭连接            echo '<script>alert("博客修改成功");location="user_index.php";</script>';        } else {            mysqli_close($mysqli);            echo '<script>alert("博客修改失败");location="user_update_blog.php";</script>';        }    }else{        echo '<script>alert("无权限!");location="user_index.php";</script>';    }} else {    echo '<script>alert("请先登录!");location="signin.php";</script>';}?>

7、删除博客

这里普通用户和管理员的代码时基本一样的,首先判断是否登录,接着判断是否为普通用户,若是,则判断要删除的博客是否为自己的博客,若为管理员,则无需判断是否为自己的博客。

<?phpsession_start();?><meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0"><?phpif ($_SESSION["adminName"] != "") {    require_once "config.inc.php";    $level = $_SESSION["level"];    $mail_blog = $_SESSION['mail_blog'];    $adminMail = $_SESSION["adminMail"];    $no_blog = $_SESSION['no_blog'];    if ($level == 'user') {        if ($adminMail != $mail_blog) {            echo '<script>alert("无权限!");location="user_index.php";</script>';        } else {            $demand = "delete from blog where blogNo = '$no_blog'";            $res = mysqli_query($mysqli, $demand);            if ($res) { //跳转页面                mysqli_close($mysqli);                echo '<script>alert("删除博客成功");location="user_index.php";</script>';            } else {                mysqli_close($mysqli);                echo '<script>alert("删除博客失败");location="user_index.php";</script>';            }        }    } else {        $demand = "delete from blog where blogNo = '$no_blog'";        $res = mysqli_query($mysqli, $demand);        if ($res) { //跳转页面            mysqli_close($mysqli);            echo '<script>alert("删除博客成功");location="super_index.php";</script>';        } else {            mysqli_close($mysqli);            echo '<script>alert("删除博客失败");location="super_index.php";</script>';        }    }} else {    echo '<script>alert("请先登录!");location="signin.php";</script>';}?>

8、发表评论

注意评论不能为空。

<?phpsession_start();?><meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0"><?phpif ($_SESSION["adminName"] != ""){    require_once "config.inc.php";    $email = $_SESSION['adminMail'];//用户名    $blogNo = $_SESSION['no_blog'];//博客号    $new_comment =$_REQUEST['new_comment'];//新评论    date_default_timezone_set('Asia/Shanghai');//设置为北京时间    $commentDate=date('Y-m-d H:i:s');//自动获取时间(年月日时间)    $demand = "INSERT INTO `comment` (`commentContent`, `adminMail`, `blogNo`, `commentDate`) values('$new_comment','$email',$blogNo,'$commentDate')";    $insertComment = mysqli_query($mysqli,$demand);    if ($insertComment){        echo '<script>alert("发表成功");location="user_index.php";</script>';    }    else{        echo '<script>alert("输入错误!");location="user_index.php";</script>';    }}else{    echo '<script>alert("请先登录!");location="signin.php";</script>';}?>

9、修改密码

首先判断是否已经登录,接着判断新密码和第二次输入的新密码是否一致,再判断原密码是否正确。

<?phpsession_start();?><meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0"><?phpif ($_SESSION["adminName"] != "") {    require_once "config.inc.php";    $email = $_SESSION['adminMail'];//用户名    $real_pwd = $_SESSION['passWord'];//真实密码    $past_pwd = $_REQUEST['past_pwd'];//原密码    $new_pwd = $_REQUEST['new_pwd'];//新密码    $pwd = $_REQUEST['new_pwd_2'];//第二次新密码    if ($new_pwd == $pwd) {        if ($real_pwd == $past_pwd) {            $sql = "update admin set password = '$pwd' where adminMail='$email'";            $updatepwd = mysqli_query($mysqli, $sql);            if ($updatepwd) {                echo '<script>alert("密码修改成功,请重新登录");location="signin.php";</script>';            } else {                echo '<script>alert("未知错误!");location="user_update_pwd.php";</script>';            }        } else {            echo '<script>alert("原密码输入错误!");location="user_update_pwd.php";</script>';        }    } else {        echo '<script>alert("两次密码输入不相同!");location="user_update_pwd.php";</script>';    }} else {    echo '<script>alert("请先登录!");location="signin.php";</script>';}?>

10、修改昵称

<?phpsession_start();?><meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0"><?phpif ($_SESSION["adminName"] != "") {    require_once "config.inc.php";    $email = $_SESSION['adminMail'];//用户名    $new_name = $_REQUEST['new_name'];//新昵称    $sql = "update admin set adminName = '$new_name' where adminMail='$email'";    $updatename = mysqli_query($mysqli, $sql);    if ($updatename) {        $_SESSION["adminName"] = $new_name;        echo '<script>alert("昵称修改成功");location="user_index.php";</script>';    } else {        echo '<script>alert("输入错误!");location="user_update_name.php";</script>';    }} else {    echo '<script>alert("请先登录!");location="signin.php";</script>';}?>

11、管理员删除用户

需要注意的是,删除用户的同时会删除有关他的所有信息,包括他发表的博客和评论。

<?phpsession_start();?><meta name="viewport" charset="utf-8" content="width=device-width, initial-scale=1.0"><?phpif ($_SESSION["adminName"] != "") {    require_once "config.inc.php";    $admai = $_GET['delete_mail'];    $sql = "delete from admin where adminMail='$admai'";    $delete = mysqli_query($mysqli, $sql);    $sql2 = "delete from blog where adminMail='$admai'";    $delete2 = mysqli_query($mysqli, $sql2);    $sql3 = "delete from comment where adminMail='$admai'";    $delete2 = mysqli_query($mysqli, $sql3);    echo '<script>alert("删除成功");location="super_user.php";</script>';} else {    echo '<script>alert("请先登录!");location="signin.php";</script>';}?>

四、运行环境

APMServ 5.2.6 for Windows 2000/XP/2003

五、运行说明

1、以管理员身份运行APMServ,启动服务器,点击管理MySQL数据库;

2、将数据库设计源码(.sql文件)中的数据导入数据库当中;

3、最后点击访问用户本地网站,找到我们解压后的源代码的目录并点击(记得事先将项目文件放到APMServ5.2.6wwwhtdocs目录下);

4、找到signin.php文件并点击即可进入登录页面;

5、若想体验登录后的功能,可以点击用户中心下的登录并输入账号密码即可。

(如输入普通用户账号:2015100@126.com 密码:pwdpwd;

或者管理员账号:super@126.com 密码:superpwd)

以上就是基于PHP实现个人博客网站的详细内容,更多关于PHP博客网站的资料请关注我们其它相关文章!

相关文章 大家在看