• php_mvc实现步骤七


    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

    处理页面的图片,CSSJS

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

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

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

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

    依据平台进行管理:

    模板中载入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, 等待时间

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

    代码实现:

    项目中使用:

    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即可

  • 相关阅读:
    [题解]luogu-P1494 小Z的袜子 普通莫队
    [板子] 线性基
    [板子]字符串-KMP与AC自动机
    [板子]线段树求逆序对
    任务表
    [学习笔记]数列分块入门九题[LOJ6277-6285]
    Python常用高级函数
    Python的闭包和装饰器
    Python的迭代器和生成器
    Python的命名空间
  • 原文地址:https://www.cnblogs.com/ybygb-geng/p/9913299.html
Copyright © 2020-2023  润新知