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

二、功能说明
未登录用户:
仅可以浏览所有博客的内容。
已登录用户:
浏览所有博客的内容;发表博客;删除自己的博客;修改自己的博客;在任一博客下评论;修改昵称和密码。管理员:
可以执行普通用户的所有功能;修改任一博客的内容;删除任一博客;删除任一用户。网站平台功能补充说明:
动态显示博客信息(如当前所有博客数量,用户个人博客数量,以及博客内容信息);博客和评论发表的时间遵循北京时间;登录时只要输入账号密码即可,后台会自动判断该账号为普通用户还是管理员,进而推送到对应的网页。三、核心代码讲解
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博客网站的资料请关注我们其它相关文章!







