bss项目开发感悟

前言:经过近一个月的努力,终于通过看孙胜利的视频把小清新bbs系统给开发出来了,可以说这一个月是我最忙也是最充实的一个月了。在这一个月的学习中,我感悟颇深。不多说了,下面我把开发思路简单的说一下。

这个系统在功能方面主要分为两大部分:管理员操作的后台界面和用户操作的前台界面。

后台界面:
在这里插入图片描述
相关文件:
在这里插入图片描述
前台界面:
在这里插入图片描述
相关文件:
在这里插入图片描述

在前台,用户可以在不登录的状态下浏览帖子,但要想发帖子和回复帖子必须要登录才行。

在这里插入图片描述
这里的管理员分为两种,超级管理员和普通管理员,超级管理员有着普通管理员没有的权限,比如,超级管理员有着添加和删除管理员的功能,而普通管理员却没有。不过只要是管理员都有管理帖子的权限。

不过看了孙胜利写的代码,我觉得有的地方有点问题,下面给大家说一下这些问题及解决方法。

在管理员操作界面中的子版块列表中,有几个操作链接:访问,编辑和删除。
在这里插入图片描述
在删除这个功能中孙老师写的代码其实是有些小问题的,下面是孙老师的源码
在这里插入图片描述
其中删除子版块的操作只有

$query="delete from sfk_son_module where id={$_GET['id']}";
execute($link,$query);

也就是说这个命令执行后只删除了子版块,而子版块下的帖子和帖子相关的回复并没有被删除,即使这些内容以后也不会被访问到,但他们在数据库里除了占用资源外没有任何用处。

我的解决方法如下:
根据传来要删除的子版块的ID,来查一下数据库中存储帖子的表(我的表名为content)和存储回复的表(我的表名为reply),看看里面有没有与此子版块相关的帖子和回复,如果有就将其删除。
在这里插入图片描述
(这是我的数据库列表,sm为存储子版块的表,红线框起来的使我们要操作的数据库)

在这里插入图片描述
我的解决方法就是:
我们先看看content表里有没有与该子版块相关的帖子,如果有$data就不为空,就会执行第一个if语句,不然就直接执行删除子版块的语句,第一个if语句中进一步判断reply表里有没有与帖子相关的回复,如果有$da就不为空,就会执行第二个if语句,不然就直接执行删除content表中相关帖子的语句,第二个if语句里的作用是删除reply表中与之相关的回复,反正无论怎样,最后都会删除传过来的ID对应的子版块。

但我的这段代码虽然达到了我们要实现的效果,但好像并不是很完善,应该还有些bug,以后再慢慢完善吧。

除此之外,我还补充了一个孙胜利之前有提到但没有实现的功能——用户列表
在这里插入图片描述

在这个界面可以对用户进行修改用户名、密码和删除用户的操作,还可以添加新用户,更厉害的是还可以将用户设置成管理员!

不过删除操作和设置管理员的操作需要超级管理员的权限。

修改用户名和密码:
在这里插入图片描述
添加用户:
在这里插入图片描述
代码如下:

用户列表的源代码:

<?php
include_once '../inc/config.php';
include_once '../inc/mysql.php';
include_once '../inc/tool.php';
$link=connect();
include_once 'inc/adminlogin.php';
$title['title']='用户列表页';
?>
<?php include 'inc/head.php'?>
<div id="main">
	<div class="title">用户列表</div>
	<table class="list">
		<tr>
			<th>ID</th>
			<th>名称</th>
			<th>操作1</th>	 	 	
			<th>操作2</th>
		</tr>
		<?php 
		$query="select * from vip";
		$result=exe($link,$query);
		while ($data=mysqli_fetch_array($result)){
			
			$url=urlencode("vipdel.php?id={$data['id']}");
			$return_url=urlencode($_SERVER['REQUEST_URI']);
			$message="你真的要删除用户 {$data['name']} 吗?";
			$deurl="com.php?url={$url}&return_url={$return_url}&message={$message}";
			
$html=<<<A
			<tr>
				<td>id:{$data['id']}</td>
				<td>{$data['name']}</td>
				<td><a href="vipupdate.php?id={$data['id']}">[修改]</a></td> 
				<td><a href="{$deurl}">[删除]</a></td>
			</tr>
A;
			echo $html;
		}
		?>
</div>
	</table>
	<a href="vipadd.php"><input style="margin-top:20px; margin-left: 16%;" class="btn" type="submit" name="submit" value="添加用户" /></a>
<?php include 'inc/foot.php'?>

设置管理员的核心代码

if(!isset($_GET['id']) || !is_numeric($_GET['id']))
{
	alert('id参数错误!','vipshow.php');
}
$query="select * from vip where id={$_GET['id']}";
$result=exe($link,$query);
$data=mysqli_fetch_assoc($result);

$query="select * from admin where name='{$data['name']}'";
$result=exe($link,$query);
if(mysqli_num_rows($result))
{
	alert('这个这个用户已经是管理员了,请不要重复设置!','vipadmin.php');
}
$query="insert into admin(name,pw,ctime,level) values('{$data['name']}','{$data['pw']}',now(),{$_GET['id2']})";
exe($link,$query);
if(mysqli_affected_rows($link)==1)
{
	alert('恭喜你,设置成功!','vipshow.php');
}
else
{
	alert('对不起,设置失败,请重试!','vipshow.php');
}
?>

在这里插入图片描述
与用户操作的代码一共有怎么多,我就不一一展示了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值