shop34-5-登录表单

登录功能分析

功能登录表单

C控制器-动作

back后台admin控制器loginAction动作完成该功能。

Application/back/controller/AdminController.class.php

增加动作:

完成动作:

M模型

不需要!

V视图层-模板

增加登录表单模板,展示!

Application/back/view/login.html

按照ecshop的后台样式展示结构即可!

表单action地址:

必要的元素:

提交:

测试请求该动作:

Index.php?p=back&c=Admin&a=login

处理页面的图片,CSS,JS

项目中所用的CSS,JS,图片需要在浏览器端请求到,在浏览器解释执行的。

与项目中核心类,模型类,控制器类,模板文件不同,这些不能在浏览器端直接请求到。

应该将css,图片统一管理在一个可以被访问到的地址!

新建一个子目录,专门用于存放哪些可以被浏览器直接请求的资源(JS,CSS,Image)

并依据平台进行管理:

模板中载入css或者图片的路径需要更改:

Login.html

Tip:防止浏览器直接请求到framework及其appliction

设计管理

67.255.255.255

一个字节:8个位:

00000000——————11111111

一个IPv4地址与一个无符号整型,可以进行相互转化:

表语句:

插入几条测试数据:

shop34-6-验证管理员合法性

功能:管理员验证

控制器-动作

Back/AdminController->checkAction();

模型

为操作admin表,建立模型AdminModel

Application/back/Model/AdminModel.class.php

测试:

别忘了修改数据服务器信息,为项目所用!(增加配置文件)

视图-模板

不需要

shop34-7-跳转

案例中实现跳转

封装一个可以完成跳转的方法,需要时,调用即可!

控制器的功能!

该功能应该被所有的控制器动作所共享,因此,应该在基础控制器中被定义:

Controller.class.php

实现:

分析,参数:

$url, 目标URL地址

$info, 提示信息

$wait, 等待时间

为 info和wait增加默认参数,可以做到,即可完成立即,也可以完成提示跳转!

代码实现:

项目中使用:

Back/AdminController->checkAction()

测试:

创建一个后台首页动作!

Application/back/controller/ManageController.class.php

indexAction();

shop34-8-session登录验证

浏览器登录验证分析

在访问到后台首页(后台所有功能)时,应该先判断当前浏览器是否处于登录状态,再做功能的实现!如果没有登录,则跳转到登录页面。

如何判断当前浏览器用户是否登录?

管理员合法 –> 处于登录状态

登录标志:

一个数据。

如何存储这个数据呢?

[不合理的]测试:

变量:

分配(back/AdminController->checkAction())

验证(back/ManageController->indexAction())

总结:不行,原因是:

数据的生命周期问题,对于PHP来说,所有数据(变量,常量)的最大生命周期,一个脚本周期(浏览器向服务器发出一次请求,服务器将该请求交由PHP处理,PHP处理完了给服务器,服务器响应给浏览器,就是一个脚本周期)

可见:登录标志的存储,需要可以跨脚本周期存储数据的一种形式(持久性存储数据的机制)

[不合理的]测试:

文件:

不行,原因是:

在服务器端管理的文件(数据库中)是不区分浏览器端,对于任何一个浏览器都是通用的!

可见:登录标志的存储,需要可以区分浏览器,并在该浏览器的多次请求周期内,可以持久存储的一种数据存储机制!

以上的存储机制,就是会话技术!

Session完成登录状态的存储

分配:

Back/AdminController->checkAction();

判断:

Back/ManageController->indexAction()

shop34-9-SESSION入库

项目中的session入库

以框架基础代码中 扩展工具的角色 出现项目中!

增加相应的目录常量:

Index.php

采用面向对象的编程思想完成:

工具类。

要求:

增加session入库工具类(完成其自动加载)

入库操作由工具类对象的方法充当。

在实例化该工具类对象时,完成设置session处理器,并开启session。

增加session入库工具类(完成其自动加载)

入库操作由工具类对象的方法充当

要求使用项目中统一的DAO完成数据库操作。

在实例化该工具类对象时,完成设置session处理器,并开启session。

由构造方法完成:

使用:

创建session表:

项目中,原本session_start(),由new SessionDB即可!

php_mvc实现步骤七的更多相关文章

  1. php_mvc实现步骤九(登录验证码,退出-登录标记)

    shop34-17-登录验证码 验证码的分析 登录:防止暴力破解 论坛:防止灌水水 展示类:被抓取. 需要技术: 图片处理技术. 会话session技术. PHP图片处理技术 – GD 具体操作步骤 ...

  2. php_mvc实现步骤十

    shop34-19-商品添加 功能:添加商品表单 Index.php?p=back&c=Goods&a=add Controller-Action: 新建商品控制器类 Applicat ...

  3. php_mvc实现步骤八

    shop34-10-框架类 框架类(框架初始化类) 将原来入口文件中功能,放在该类中完成,入口文件变得简单,轻量! 将入口文件中的各个功能,由框架类的各个方法,完成: 为了简单化,使用纯静态的类.(看 ...

  4. php_mvc实现步骤六

    shop34-1-目录布局 存在项目的根目录 shop34 框架代码与应用程序代码划分 框架代码: 在各个应用程序间可以通用的代码. 应用程序代码: 当前项目的业务逻辑实现的代码. 分别创建两个子目录 ...

  5. php_mvc实现步骤五

    5.match_controller 控制器层典型实现 控制器类 依据功能的相关性,将一系列相关的功能,使用一个控制器类来处理,而该控制器的每个方法,就对因某个功能. 注意:控制器是按照功能划分的.( ...

  6. php_mvc实现步骤三,四

    3.match_mvc MVC 以ecshop的前台为例: 功能一: 首页 购物车数据,商品分类数据,其他的首页需要的数据 功能二: 拍卖活动 购物车数据,商品分类数据,拍卖相关数据 功能三: 团购商 ...

  7. php_MVC实现步骤二

    2.match_split 显示逻辑相分离 将功能强制分成两个部分,显示html文件,和逻辑PHP文件: 要求浏览器请求负责功能的PHP逻辑文件: 该PHP逻辑文件,对需要的显示内容进行载入. 逻辑P ...

  8. php_MVC实现步骤一

    1.Match 基本实现 功能,比赛列表,球队信息 数据表初始化: 比赛列表: 球队一 比分 球队二 比赛时间 韩国 1:2 澳大利亚 15-01-31 17:00 从SQL思考,如何完成上面的查询: ...

  9. Oracle 11g RAC 环境打PSU补丁的详细步骤

    首先重要的事情说三遍:操作之前还是自己先看文档!操作之前还是自己先看文档!!操作之前还是自己先看文档!!! 把11.2.0.4 RAC 环境打PSU补丁的步骤详细记录一下,方便参考. 环境:11.2. ...

随机推荐

  1. test20190903 JKlover

    100+65+100=265,T2就差了一点. 乌合之众 给出一个 n × n 的, 元素为自然数的矩阵.这个矩阵有许许多多个子矩阵, 定义它的所有子矩阵形成的集合为 S . 对于一个矩阵 k , 定 ...

  2. WebPack探索之路(1)

    1. 卸载全局的webpack npm ininstall webpack webpack-cli -g 其中安装webpack-cli 是可以让webpack在命令行中执行.在webpack4.0中 ...

  3. STM32 IAP程序 源码 和测试代码 有详细的中文注释

    http://bbs.21ic.com/forum.php?mod=viewthread&tid=588265&reltid=624002&pre_pos=2&ext= ...

  4. 4-html图片与链接

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. 使用postman上传excel文件测试导入excel

    今日思语:城市的生活很快,有时学会让自己慢下来,慢慢来 对于做一些文件上传操作时,一般我们是直接在前端页面加入类型为file的input标签,也可以使用postman来进行文件的上传测试,如下: po ...

  6. 【转】分布式事务,EventBus 解决方案:CAP【中文文档】

    [转]分布式事务,EventBus 解决方案:CAP[中文文档] 最新文档地址:https://github.com/dotnetcore/CAP/wiki 前言 很多同学想对CAP的机制以及用法等想 ...

  7. BZOJ1113 海报PLA1(单调栈入门题)

    一,自己思考下 1,先自己思考下 N个矩形,排成一排,现在希望用尽量少的海报去cover住它们. 2,不懂. 着实不懂. 3,分析下,最优性问题对吧,然后就每什么想法了.. 虽然肯定和单调栈和单调队列 ...

  8. css 网格布局

    一.概述 网格布局(Grid)是最强大的 CSS 布局方案. 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局.以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了. 上 ...

  9. apisix 基于openresty 的api 网关

    apisix 是由openresty 团队开发并开源的微服务api gateway,还不错,官方文档也比较全,同时这个也是一个不错的学习openresty 的项目 以下为来自官方的架构图 插件加载 插 ...

  10. 干货 | 10分钟带你全面掌握branch and bound(分支定界)算法-概念篇

    00 前言 之前一直做启发式算法,最近突然对精确算法感兴趣了.但是这玩意儿说实话是真的难,刚好boss又叫我学学column generation求解VRP相关的内容.一看里面有好多知识需要重新把握, ...