上一节课完成了一个学生分数信息管理网页的全部功能,并初步学习了如何使用PHP编程语言调用MySQL数据库实现数据的动态管理。

这节课来学习编写开发一个完整的网站,包含后台数据管理功能和前台网站的展示功能,并学习多个数据表的关联管理,以及图片的后台上传和前台显示功能。这些内容可以要分几节课完成。

网站功能设计

来做一个新闻发布功能网站。主要功能分2部分:

第1部分是需要一个后台管理系统,可以登录,然后可以查询目前的新闻信息,并且可以新建、编辑和删除新闻信息。一个新闻有标题,作者,发布时间,然后包含有多个图片或者文字信息。

第2部分是需要在前台网站上一览显示新闻的标题作者和发布时间,点击标题之后,进入新闻详细显示页面,从上往下依次显示标题,作者,发布时间,然后下面是显示具体的多个图片或者文字信息。

接下来,使用PowerPoint软件来做界面设计,将脑海中设想的页面画出来,然后从头到尾进行确认逻辑的连贯性和完整性,确保设计是合理的,没有矛盾之处,并同时考虑界面设计的美观性,如果有可能的话,最好是由专业的美工人员使用专业的设计软件画出精确的界面设计图,然后编程人员就能够按照设计要求更准确的实现画面样式。

登录页面:

image

后台主页面:

image

为了练习和实践主菜单功能,将之前编写好的学生分数管理功能添加进来,这样就有2个菜单,可以学习如何编写菜单功能。

后台学生分数一览页面:

image

后台新闻信息一览页面:

image

后台新闻详细页面:

image

前台新闻一览页面:

image

前台新闻详细页面:

image

数据库表结构设计

根据新闻信息一览和详细页面的显示内容进行分析,新闻信息的数据主要有2大块,1块是一个新闻信息的ID、标题、作者和发布时间。另外1块每一个新闻的具体内容有详细ID、序号、图片文件名或者文字内容。1个新闻信息可能包含多个详细内容。

这里的信息如果用一个表来存储的话就不是很方便,因为1个新闻包含多个详细内容,如果将详细内容作为记录的字段,则标题和作者和发布时间存在详细记录字段上就需要重复记录,这样会有数据冗余。

这时候,可以考虑采用主从表的方式。

新闻信息主表,里面的字段为新闻ID、新闻标题、作者和发布时间。

新闻信息从表,里面的字段为新闻ID、详细ID、序号、图片文件名和文字内容。

主从表之间通过相同的新闻ID进行关联。也就是新闻ID一致的话,则新闻信息主表就能找到对应的新闻信息从表了。

设计好的数据库结构如下:

image

根据数据库的设计,使用数据库客户度软件手工创建表到数据库student里面。

创建表content如下:

image

创建表contentdetail如下:

image

程序结构设计

这里出现了很多个页面,有一些共通的页面,所以需要考虑程序的结构设计,将共通的功能抽取出来集中在一起,多个页面都可以复用,减少代码的冗余性,提高系统的可维护性。

一个系统要编写出来,事先要考虑很多东西,先想好再开始编写,可以更有的放矢,心中有一个清晰的结构,能有效的提高开发效率。

首先是给每个页面定义2个php文件如下:

登录页面:login.php 和 login_do.php

后台主页面:news_index.php

学生分数管理页面:保持原来的文件不变

后台新闻一览页面:news_list.php 和 news_list_do.php

后台新闻详细页面:news_detail.php 和 news_detail_do.php

前台新闻一览页面:f_news_list.php 和 f_news_list_do.php

前台新闻详细页面:f_news_detail.php 和 f_news_detail_do.php

然后考虑到多个页面的上方显示系统名和用户名和退出按钮以及主菜单栏都是一样的,可以做一个共同的top.php页面。

然后考虑将所有的CSS文件都放到一个news.css文件中。

然后将所有的JavaScript代码都放到一个news.js文件中。

然后将PHP代码中和数据库有关的代码都放到entity.php文件中。

然后将一些共通性的处理函数以及一些定义都放到common.php文件中。

然后将权限检查的代码放到一个check_auth.php文件中。

登录页面

后台管理系统是只能由特定的人员登录上去之后才能访问,处于安全考虑防止任何人都可以进入后台管理系统随意编辑新闻信息,因为需要一个登录页面,只有登录成功之后,才能进入新闻信息管理页面进行新增或编辑数据记录。

后台管理页面是需要登录才能访问的,而前台新闻一览页面和详细页面是不需要登录,任何人都可以访问的。这就是前台和后台的区别。

登录页面比较简单,就是一个账号输入框和一个密码输入框。

点击登录按钮后,检查账号和密码是否正确,正确的话则页面迁移到后台主页面,错误的话则显示消息。

账号和密码判断暂时就是固定的唯一的,未来可以考虑从数据库中查询后判断是否正确。

login.php文件如下:

4-13-11.jpg

image

login_do.php文件如下:

image

news.css文件如下:

4-13-14.jpg

image

4-13-16.jpg

news.js文件如下:

image

common.php文件如下:

image

使用浏览器打开网页:

image

不输入账号和密码,点击登录:

image

不输入账号,点击登录:

image

不输入密码,点击登录:

4-13-22.jpg

输入错误的账号或者密码,点击登录:

image

可以看到错误消息提示。

输入正确的账号admin和密码123456,点击登录:

4-13-24.jpg

由于后台主页面还没有开发,所以提示网页不存在。

使用session来控制权限

可以看到前面登录login_do.php文件当中有一段代码,也就是账号和密码正确之后的处理,除了页面迁移之外,还做了一件事情,就是将账号和用户名保存到session当中了。那么session是什么和怎么用呢?

session的主要作用就是为了保持多个页面之间的数据交互,在多个网页之间进行数据共享而设置的。

将某个数据保存在session当中之后,浏览器和Web服务器之间每次交互都会将这些数据来回传递,保证每次都能取得这些数据。

这样就不需要每个页面都去重复填写和提交这些数据,这个工作就交给浏览器和Web服务器来完成。

只用在需要的页面中通过session读取方法读取出这些存储的数据就可以达到多页面之间数据共享的目的了。

这里将登录账号和对应的用户名保存在session当中,目的就是为了后续页面访问显示出用户名,并且通过访问这2个变量是否存在数值,就可以判断出是否通过了登录页面,因为只有登录成功了才会有这2个数据,如果登录不成功则不会有这2个数据。因此在后面的页面中通过判断这2个数据就能知道是有权限进入的还是没有权限进入的页面。

来编写权限检查的文件,check_auth.php文件如下:

image

如果检查到没有登录或者登录后长时间未动作导致Session超时,则跳转到login.php页面。

那么login.php就需要处理这个错误提示。

login.php修改如下:

4-13-26.jpg

这个文件编写好之后,在需要检查权限的网页文件当中引用这个文件就可以达到检查权限的目的了。

编写后台主页面以及菜单功能

登录成功之后,进入一个后台主页面news_index.php,上面是调用top.php。

先来编写top.php文件如下:

image

然后编写news_index.php文件如下:

image

news.css文件修改如下:

image

4-13-30.jpg

image

news.js文件修改如下:

4-13-32.jpg

先来测试如果没有登录,直接去反问news_index.php网页是什么情况。

新开一个浏览器窗口,输入网址news_index.php:

image

然后回车访问:

image

可以看到提示了错误消息,页面跳转到登录页面了。

这里就是check_auth里面的代码起作用了。

由于news_index.php的文件开始的地方调用了check_auth.php,然后check_auth.php里面检查了是否有登录的账号和名称是否存储在session当中,如果检查发现没有则网页跳转到login.php并且带一个参数from=error。然后在login.php的下面根据fromtype获取了的值如果等于error,则说明是没有登录的错误,则提示相应的错误信息。

同样的,如果直接在浏览器网址输入top.php进行访问,也是一样的提示这个错误。

接下来,测试正常登录的情况。

然后打开登录页面,输入正确的账号admin和密码123456,点击登录按钮:

image

这里可以看到进入了后台主页面,上面是top部分,有系统名称,登录名称和退出按钮。

下面是2个主菜单。

点击退出按钮,就会回到登录页面。

点击“学生分数”菜单:

4-13-36.jpg

弹出一个新窗口,显示了学生分数一览查询页面。

点击“新闻信息”菜单:

image

作者:零基础学编程by学哥

怎么用php做一个新闻网站,0067 如何编程开发一个新闻发布功能网站相关推荐

  1. 自己怎么开发一个软件app、如何开发一个app系统软件?

    自己怎么开发一个软件app.如何开发一个app系统软件? ​华盛恒辉开发app软件的办法如下: 1.华盛恒辉首先本人明白需求,懂代码,熟习开发流程. 2.华盛恒辉APP开发后期需求理解产品定位. 3. ...

  2. 分享一个学习ArcGIS二次开发与应用的学习网站

    给大家分享一个学习ArcGIS二次开发与应用的学习网站,有很多教程视频资料.Giser小天_Giser小天腾讯课堂官网

  3. Linux包含一个名称是()的调试程序,开发一个 Linux 调试器(九):处理变量

    变量是偷偷摸摸的.有时,它们会很高兴地呆在寄存器中,但是一转头就会跑到堆栈中.为了优化,编译器可能会完全将它们从窗口中抛出.无论变量在内存中的如何移动,我们都需要一些方法在调试器中跟踪和操作它们.这篇 ...

  4. vc6开发一个抓包软件_开发一个软件多少钱?3种软件开发公司报价

    开发一个软件多少钱?现在随着智能手机的发展,各种各样的app大受市场欢迎,同时也方便了大家日常生活,开发一个自己的app软件成为不少传统企业及创业者的首选.但是如何选择靠谱的开发公司呢?同样的app开 ...

  5. vc6开发一个抓包软件_开发一个软件多少钱?传统app开发与0代码app制作方法对比...

    开发一个软件多少钱?app开发难吗?app制作需要哪些流程? app开发很难:按照传统的开发方式需要最少5名以上的技术人员,团队配合花费3个月左右的时间才能搞定,成本20万以上. app开发也很简单: ...

  6. vc6开发一个抓包软件_开发一个软件要多少钱?app软件开发的费用

    很多人咨询app开发相关的问题,大多数人最关心的就是:开发一个软件要多少钱?在本文中,我们将为大家分析这个经典问题:app软件开发的费用是多少? 对于行业中的任何人来说,这都是一个棘手的问题,即使你已 ...

  7. php新闻网站毕设论文,校园新闻发布毕业设计网站php实现

    文章来源:淘论文网   发布者:毕业设计 浏览量: 本校园新闻发布系统根据当前各类高校的实际需要,利用php开源最流行的web开发语言而制作的.Php是服务器端脚本编写环境,使用它可以组合 HTML ...

  8. python编程第一程序_第一个Python程序_Python编程开发教程

    第一个Python程序 用notepad++编写程序代码 语言设置为python(高量显示函数和关键字)(注意:行首不能有空格,Python对缩进要求严格) 命令提示符运行 cd \文件名 #打开py ...

  9. c语言float如何做减法,利用c语言设计开发一个简单计算器,可进行加减乘除运算....

    共回答了18个问题采纳率:94.4% #include #include void add(float num1,float num2) { printf("num1 + num2 = %6 ...

最新文章

  1. 功能演示:戴尔PowerConnect 8024交换机VLAN的创建与删除
  2. Jedis连接redis
  3. 领域驱动设计(DDD)前夜:面向对象思想
  4. Net平台下的B/S开发框架
  5. server sql 分组 去重 字符串拼接_SQL必知必会
  6. iOS 并发编程之 Operation Queues
  7. 医学信息学计算机技术,2017年医学信息学专业大学排名
  8. fabric 1.3.1 ,全手动部署到5台机器上.支持 kafka 模式的共识机制和 couchdb 存储,以及 fabric ca , fabric explorer的使用
  9. 国内外物联网平台大全
  10. TexLive2018中使用BibTeX管理参考文献
  11. Java并发框架——AQS阻塞队列管理(三)——CLH锁改造
  12. 汇编语言寄存器说明eax, ebx, ecx, edx, esi, edi, ebp, esp,eip
  13. c语言字符统计2sdut,C语言实验——单词统计(字符串) SDUT
  14. 苯四乙酸 cas1820793-31-4 齐岳中间体|单体材料
  15. 计算机公式与函数试题,计算机国考样题EXCEL之公式与函数的应用一
  16. JAVA日记之mybatis-2代理开发/动态sql/sql抽取/核心配置标签 ----喝最烈的酒.
  17. 江苏2022农民丰收节 国稻种芯:主场活动在苏中地区泰兴开幕
  18. 函数 java_java函数方法
  19. React全家桶构建一款Web音乐App实战(六):排行榜及歌曲本地持久化
  20. ASP.NET 系列_07_编程指南(三)

热门文章

  1. 三分屏课件制作_教你使用iSpring Suite制作PPT二分屏课件
  2. 国土资发〔2015〕16号 国土资源部关于进一步加强信息化工作统筹的若干意见
  3. 【2】Python 视频文字识别提取 - Mp3 文字识别
  4. 国防科大计算机优势,报考国防科技大学的优缺点,你知道的有多少?
  5. 西安市物价局商品房房价公示网址
  6. AVI文件格式简介与WAV文件分析
  7. DataSphereStudio 安装
  8. 蚌埠医学院有计算机专业吗,安徽蚌埠医学院医学影像学专业
  9. WS-DAN论文解读
  10. 基于HTML5+CSS+JS的响应式圣诞老人过悬崖小游戏