一步一步教你用PHP+mysql搭建网站 No.3 管理页面

先来看一下本篇blog将要介绍的内容。

我们的主页面已经搭建完成了,然后左边的navigation里面的大部分内容也都能点击了,只剩下“search” 和“I'm a writer”两个链接了。

本篇教程过后,我们将能完成下面的功能:

这是我们的主界面

点击“I'm a writer” :

点击任意一个链接:

Writers登录之后的页面:

好了,我们一步一步来吧:

我们可以看到在主界面的表单项里面,点击I'm a writer之后的链接是这样的:

“admin/index.php”,所以我们需要在主机上新建一个文件夹,命名为admin,然后编辑index.php,就是我们今天要搞定的用于作者登录的页面了。

为了便于讲解,从现在开始,如果不加特殊的说明,所有的文件都是在admin这个文件夹下新建的,我们再来回顾一下目录结构:

接下来,我们就来开始作者页面的开发吧!

index.php

这个页面很简单,从开始的图片里面也看到了,就是两行表单的内容,一个链接指向本篇要讲解的writer.php,另一个链接指向publish.php。

接下来我们来看

writer.php

我们先来整体看一下writer.php是如何完成我们想要的内容的,然后里面出现的一些函数我们在后面再详细讲解

第4行

include了一个新的文件include_fns.php,注意,这个也是在admin文件夹里面的哦,writer.php中会用到一些函数,而这些函数,都是从这个include_fns.php中所包含的。

第6行

判断了一下当前时候有用户登录,这个函数将会在之前引用的文件里面包含。如果没有用户登录,那么就执行login_form()函数,显示出用户登录的表单,否则的话,就会显示出当前登录用户的文章信息了

第13行

get_writer_record函数用来返回用户的相关信息,然后在15-19行,结合用户的信息,显示出这一行内容:

21-23行

这个select语句应该很简单了吧,就是把当前用户发表过的文章都找出来,按照创建的时间做倒叙排序

25-28行

根据用户的记录,显示用户一共有几篇文章,然后再附带一个新的连接到添加文章的页面story.php,这个我们在下一篇blog中讲解

30-59行

这里面的内容应该我们也不难理解了,之前有类似的内容,就是按照搜索出来的文章信息,展示给用户,同时提供几个链接可以进行更多的操作:edit(story.php),delete(delete_story.php)和keywords(keyword.php)等等

好了,这里整体的框架我们已经清楚了,接下来我们就单独来看几个新用到的函数吧。

我们来看下

include_fns.php

其实很简单对吧,这里还是引入了两个新的php文件,一个是上一级目录下的db_fns.php,这个我们在之前的文章里面已经很熟悉了,是用于数据库链接和操作的各个函数,注意引入的格式是:../db_fns.php;

另一个是我们关于用户的一系列函数 user_auth_fns.php。

check_auth_user()函数

这个函数出现在user_auth_fns.php文件中:

很简单,就不多介绍了。

login_form()函数

依旧是user_auth_fns.php文件中:

这个函数依旧不难,也是之前出现过的内容,就是一个表单的输入,然后点解login按钮以后,请求的是login.php页面,发送的方式是post。

login.php页面依旧很简单,我们来看下吧:

login.php

这里两个关键点:

1个是login函数,这个函数依旧是来自user_auth_fns.php文件中:

我们根据传入的两个参数username和password,都是之前用户输入的内容,然后去数据库里面和writers表里面做对比,如果找到了,就表示用户输入的用户名和密码是合法的,返回1;否则就返回0。

2

是我们看到 header('Location: '.$_SERVER['HTTP_REFERER']);函数的作用是返回到之前的页面,并刷新登录;

之前的页面是writer.php,因为用户已经登录过了,所以在writer.php的第一个if判断时,得到的结论就是已经有登录的用户,所以就跳转到11行,进行用户文章的展示页面了。

好我们接着来看 :

get_writer_record函数

因为是数据库层面的操作,所以这个函数存放在db_fns.php中,注意,这个文件在上一层目录中哦

基本上也就这些内容了。到这里,我们一共完成了用户的登录、显示文章等页面的操作,这节内容还是有点多的,大家好好消化下吧。有不同的可以留言一起讨论。

欢迎大家阅读《一步一步教你用PHP+MySql筹建网站 No.3 管理页面_mysql》,跪求各位点评,by 搞代码

微信 赏一包辣条吧~

支付宝 赏一听可乐吧~

include_fns.php_一步一步教你用PHP+MySql筹建网站 No.3 管理页面_mysql相关推荐

  1. 通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本...

    通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本   版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 ...

  2. 教你一步一步用C语言实现sift算法、上

    原文:http://blog.csdn.net/v_july_v/article/details/6245939 引言:     在我写的关于sift算法的前倆篇文章里头,已经对sift算法有了初步的 ...

  3. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-基于接口驱动的数据层...

    系列回顾 在前面的文章中,我用了大量的篇幅对UDA及ORM的使用进行了讲解和演示,我们已经知道并熟悉的使用UDA和ORM构建简单的应用,AgileEAS.NET在应用的纵向结构上建议使用分层结构,提出 ...

  4. 超级简单:一步一步教你创建一小型的asp.net mvc 应用程序

    超级简单:一步一步教你创建一小型的asp.net mvc 应用程序 这本教程中将帮助你创建一个小型的asp.net mvc示例. 在本教程中,我们将创建自己的 Model , View 和Contro ...

  5. 一步一步教你抓数据——用.net精确提取网站数据的通用方法 [转]

    一步一步教你抓数据--用.net精确提取网站数据的通用方法 [转] 2008年02月23日 星期六 16:53 具体实现思路: 1 首先用WebClient类下载网页源码 public static ...

  6. C语言实现寻找极值点,九之再续:教你一步一步用c语言实现sift算法、上

    教你一步一步用c语言实现sift算法.上 作者:July.二零一一年三月十二日 出处:http://blog.csdn.net/v_JULY_v 参考:Rob Hess维护的sift 库 环境:win ...

  7. 一步一步教你实现iOS音频频谱动画(一)

    如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 第二篇:一步一步教你实现iOS音频频谱动画(二) 基于篇幅考虑,本次教程分为两篇文章,本篇文章主要讲述音频播放和频谱 ...

  8. 通过Dapr实现一个简单的基于.net的微服务电商系统(十一)——一步一步教你如何撸Dapr之自动扩/缩容...

    上一篇我们讲到了dapr提供的bindings,通过绑定可以让我们的程序轻装上阵,在极端情况下几乎不需要集成任何sdk,仅需要通过httpclient+text.json即可完成对外部组件的调用,这样 ...

  9. 通过Dapr实现一个简单的基于.net的微服务电商系统(十)——一步一步教你如何撸Dapr之绑定...

    如果说Actor是dapr有状态服务的内部体现的话,那绑定应该是dapr对serverless这部分的体现了.我们可以通过绑定极大的扩展应用的能力,甚至未来会成为serverless的基础.最开始接触 ...

最新文章

  1. Nagios监控部署(四)--被监控主机配置
  2. Can't connect to MySQL server on 'localhost' (10061)的解决办法!
  3. 基于Elasticsearch实现搜索建议
  4. python多线程信息提示
  5. 分享一个帮助用户全屏阅读的jQuery插件 - jQuery fullscreen
  6. python 链表 【测试题】
  7. 算法设计与分析——动态规划——数字三角形问题
  8. MySQL数据库的用户授权_查看权限
  9. java 建模_Java设计模式菜鸟系列(两)建模与观察者模式的实现
  10. 标题在图表上_图与表,让你的图表更简单清晰易读,告诉你怎么设置图表
  11. 运行jar包提示找不到.properties文件的问题
  12. 《企业架构的数字化转型》10000字有感
  13. 写好软文标题的10个方式
  14. c++ 不撞南墙不回头——树形动态规划(树规)
  15. 青春、情动、永恒的经典——岩井俊二
  16. 书小宅之网页设计——二次贝塞尔曲线和三次贝塞尔曲线
  17. 微信小程序-页面导航
  18. 用excel解蓝桥杯(2018年第九届蓝桥杯A组)
  19. Java是编译性语言还是解释型语言 ?
  20. C++析构函数的执行时机

热门文章

  1. OpenCASCADE:形状愈合之用于修复、分析和升级的辅助工具
  2. boost::math模块计算二项式随机变量的概率和分位数的简单示例
  3. boost::hana模块在无限可迭代对象上测试 hana::index_if
  4. boost::hana::intersperse用法的测试程序
  5. boost::gil::color_spaces_are_compatible用法的测试程序
  6. Boost:分配服务的实例
  7. VTK:小部件之LineWidget2
  8. VTK:结构化网格之SGrid
  9. VTK:Points之DensifyPoints
  10. OpenCV清除背景扣除background subtraction的实例(附完整代码)