php实现简单的新闻发布系统前台后台数据库操作
最近写了一个小小的项目,结合了最近学习的 PHP 操作数据库函数(mysqli)。实际上,数据库大多数的操作都是增删改查,只要熟练掌握这四个操作,那么大多数的问题都会迎刃而解。
完整代码放在了 GitHub 上,欢迎 star。 GitHub: https://github.com/datehoer/news (opens new window)
下面简单讲解一下主要的功能以及思路。
# 结构
首先简单想一下,我们既然要做一个前后全套的系统,那么我们都需要什么功能呢?
首先需要一个前台页面,然后需要新闻的详情页,之后再需要后台等等。
- 主页
- 新闻详情页
- 后台操作页
- 登录页面
然后后台操作页,大多数都是一个综合的页面,然后点击跳转到具体的功能页面,所以我们的后台操作页也就是后台的主页需要有什么功能呢?
- 新闻发布
- 新闻删除
- 新闻类的增加
- 新闻类的删除
- 新闻修改
- 新闻类的修改
- 操作前台页面(友情链接、底部信息等)
- 用户操作
- 评论管理
我大概也就能想到这些,更多的内容就是边写边想了。
我们将后台的页面都命名为 admin_xxx。
然后其实有的页面只需要在页面点击进行操作,然后跳转到处理页面之后进行数据库操作,再返回之前的页面。亦或者我们使用 isset()
函数。
# isset()
函数
isset
(mixed $var
, mixed $...
= ?): bool
检测变量是否设置,并且不是 null
。
如果已经使用 unset()
释放了一个变量之后,它将不再是 isset()
。若使用 isset()
测试一个被设置成 null
的变量,将返回 false
。同时要注意的是 null 字符("\0"
)并不等同于 PHP 的 null
常量。
如果一次传入多个参数,那么 isset()
只有在全部参数都已被设置时返回 true
计算过程从左至右,中途遇到没有设置的变量时就会立即停止。
其实主要是通过这个来判断是否传递了参数,这样我们就可以将具体的操作代码放在功能页面而不是进行跳转了。
所以后台操作页的代码中大多数功能都会以 if(isset())
开头,这是为了判断你是否点击提交/删除(其实就是 submit 按钮)。
# 新闻发布
新闻发布页,这个我觉得其实是非常容易实现的功能,我们主要的核心代码就是一句话:
$sql = "insert into news(`newclass`,`title`,`content`,`settime`,`adduser`,`hits`) values('$newsClass','$title','$content','$settime',$userName','$hits');";
我们只要写好发布页面然后传值之后通过这句 SQL 进行执行即可。
只需要引入一段 JavaScript 代码然后加几行 JavaScript 即可实现现代化编辑器的样式。
# 前台布局
这个是我最后写的功能,因为...其实主要还是懒,我这个写了好久,一天写一行-.-。
这里我的思路就是创建一个数据表,然后我前台读取做这个表,如果有那么就写出来,无就不写,然后我通过后台来进行增删改查。
其实这个跟前面的新闻发布是一样的,我们在后台进行设置,比如说 banner 轮播图。
我们首先先在前台写好轮播图,然后再进行修改,之所以这样,是因为我当时是先写的静态的主页,然后再修改成读取数据,不过也可以先写后台,然后设置上去数据再写前台,但是我觉得先把前台写好,然后再进行修改比较容易,随意即可。
# 登录页面
写了这么多页面,我最满意的其实就是这个登录页面,而登录页面我最满意的就是验证码功能了。
<?php
$numlist = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
$num ='';
$numlen=5;
function createnum($numlist,$num,$numlen){
for($i=0;$i<$numlen;$i++){
$numrandom = rand(0,count($numlist)-1);
$num=$num.$numlist[$numrandom];
}
return $num;
}
$num =createnum($numlist,$num,$numlen);
?>
2
3
4
5
6
7
8
9
10
11
12
13
首先我们需要先创建一个数组,用
来储存我们的验证码的值,0-9A-Za-Z然后再创建随机数来读取数组的值,之后再进行组合就形成了我们的验证码,最后再在点击提交后先对验证码进行判断,然后再判断用户名密码来进行登录。
这个功能我是非常喜欢的!!
# 总结
主要就是捡了几个比较重要的地方来进行讲解,完整的可以去 GitHub 查看,大多数的功能我都已经实现了,所以日后是随缘进行完善了,其实之所以不将所有的功能完善好,是因为我的 CSS 写的太丑了,不想看了,哈哈。
大家要学会看别人的代码,不论好坏都可以学到许多东西,比如说验证码这个功能我就是参考的 JavaScript 验证码来写的,多学多看。