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

我们的主页面已经搭建完成了,然后左边的 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。

是我们看到 header('Location: '.$_SERVER['HTTP_REFERER']);函数的作用是返回到之前的页面,并刷新登录; 之前的页面是 writer.php,因为用户已经登录过了,所以在 writer.php 的第一个 if 判断时,得到的结论就是已经有登录的用户,所以就跳转到 11 行,进行用户文章的展示页面了。

好我们接着来看 :

get_writer_record()函数

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

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

本文由 kaka 创作,采用 知识共享署名-相同方式 3.0 (CC协议) 中国大陆许可协议 进行许可。 转载、引用前需联系作者,并署名作者且注明文章出处。

include_fns.php_管理页面相关推荐

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

    一步一步教你用PHP+mysql搭建网站 No.3 管理页面 先来看一下本篇blog将要介绍的内容. 我们的主页面已经搭建完成了,然后左边的navigation里面的大部分内容也都能点击了,只剩下&q ...

  2. python 全栈开发,Day132(玩具管理页面,控制玩具通讯录,基于请求的好友关系建立)...

    先下载github代码,下面的操作,都是基于这个版本来的! https://github.com/987334176/Intelligent_toy/archive/v1.5.zip 注意:由于涉及到 ...

  3. PHP和MySQL Web开发从新手到高手,第8天-创建categories管理页面

    1. 创建categories管理页面 主要包含以下几个页面: A. index.php, 准备各种变量数据.供展示页面使用. B. categories.html.php, 显示categories ...

  4. 如何访问Linux服务器中RabbitMQ管理页面

    大家好,本篇文章主要讲的是解决访问不到Linux服务器中RabbitMQ管理页面问题,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览 由于自己项目的某项功能需要服务器中发送消息到 ...

  5. 路由器管理页面html,196.168.1.1登陆页面网址

    196.168.1.1手机怎么登陆? 解决方法如下: 1.路由器设置网址是192.168.1.1,而非196.168.1.1,故此无法登陆原因是网址输入错误. 2.在手机端浏览器输入网址192.168 ...

  6. Python开发服务器巡检系统,东拼西凑用python脚本登录web管理页面做巡检(未实现)...

    参考 参考了网上很多博客拼出如下代码实现了登录ilom管理页面的登录 好像管理页面用了js渲染无法取到想的值未能实现巡检功能 #-*- coding:utf-8 -*- import sys from ...

  7. 超图使用服务管理页面发布服务图解

    进入超图服务管理页面:点击下图发布按钮: 选择数据来源是工作空间: 选择工作空间类型: 浏览到要发布的工作空间: 选择完成: 选择要发布的服务类型: 配置完成: 系统自动为服务命名,也可以自己给服务起 ...

  8. 路由器无法访问目标网络_初设路由器,无法访问管理页面的解决办法_网络设备技术应用...

    初次设置路由器,无法访问路由器的管理页面,即访问 或 页面时,浏览器提示无法显示该页面.导致此问题的原因通常是以下几种: · 用来配置路由器的电脑的TCP/IP属性设置有误: · 配置路由器的电脑的T ...

  9. Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试

    1.SQLite管理员账号创建 SQLite 是 Django 默认的数据库体量上类似与 Apache Derby,配置信息如下: DATABASES = {'default': {'ENGINE': ...

最新文章

  1. fixing macOS Sierra fatal error: 'openssl/opensslv.h' or 'openssl/aes.h' file not found
  2. AI开发者大会:2020年7月3日09:50--10:10唐杰《人工智能的下一个十年》
  3. C++ vector的初始化、添加、遍历、插入、删除、查找、排序、释放操作
  4. myeclipse中的一些设置
  5. Webclient UI上help center hyperlink的显示逻辑
  6. 戴着口罩也要开心过年吖!
  7. 没有varselect这个函数_C++的虚函数,虚析构函数,纯虚函数
  8. C++ 用libcurl库进行http 网络通讯编程
  9. 手机ufs测试软件,EFTech eMMC 5.1,UFS 3.0测试工具
  10. XMLHttpRequest.overrideMimeType()
  11. 测试工程师,应当知晓的12项基本原则
  12. 深入理解HTTP协议(转)
  13. 常用的Linux的命令
  14. 信息熵、互信息、KL散度
  15. 单片机c语言必背100代码,单片机C语言代码手册 含100多个经典C程序.pdf
  16. eq值 推荐算法_EQ,IQ,EIQ分析
  17. 梧桐计划发布!百度智能云携手合作伙伴共创“云智一体”繁荣新生态
  18. netkeeper代理服务器未响应,使用netkeeper创翼网速慢解决方案(C13)
  19. LeetCode-剑指Offe-32-1-从上到下打印二叉树
  20. 1-100能被7整除的数c语言,列印1-100的 范围数字包含7,或是能被7整除的所有数字(java程式码 用for语句 线上等 )...

热门文章

  1. Python老男孩 day16 函数(六) 匿名函数
  2. 121 Best Time to Buy and Sell Stock 买卖股票的最佳时机
  3. 错误提示 - QQMGameBoxUpdater 无法找到入口(GetFileVersionInfoExW)
  4. 团队项目第一阶段冲刺站立会议06
  5. 五、MongoDB的索引
  6. Cocos2d-js学习--helloword
  7. SQL 2005各版本的区别
  8. VS.NET 2005中实用的默认键
  9. 只需一行代码实现增删查改,微软已经让我们很简单。谈AccessDataSource的使用。...
  10. 判断一个路径串是否为有效目录