• 验证码确保php无输出、sql语句的封装性、文件上传的工具类【这三个重点工具类实现】


    1.php代码在引入中不会进行结束或者确保结束之后没有空格,来保证php在被包含中没有被输出【防止header和session_start()对输出的控制】
    实质上,需要注意的就是,要不就进行输出缓存控制以及php开始标签前没有空格

    验证码这个功能需要header和session两个功能【尤其需要注意输出的问题】

    【总结:防止php代码中带着一些输出的问题】
    (1)在php标签中开始<?php 前顶格
    (2)php结束符要不不写,写了就不要在结束之后还有换行【防止该文件被包含之后提前出线输出】
    (3)或者通过脚本来控制输出缓存

    另外还有编码的问题:
    utf-8+
    utf-8+BOM:相当于加了UTF8的签名【这就是svn对bom要求的原因】


    2.将验证码也作为工具类
    现在已经了解过的工具类有:数据库操作类、session入库工具类、验证码、文件上传的工具类

    针对这里,也需要对用户的登录状态进行标记【保证重新登录之后不需要再次进行验证。cookie的存活时间和session的存活时间要一致,不然就会浪费或者冲突】
    【保存用户名id进行cookie登录的标示】


    任何一个跳转都要进行一次强制停止【这一点需要注意,防止下面的代码依旧被执行,带来效率或者代码上的错误】

    3.对整个后台的登录处理
    【用户的登录,已经登录下的免登录,改密码,删用户,对密码的加密、退出登录、登录密码的保留时间等处理都需要考虑】

    【进行多次的分支处理】

    【注意:sql语句的写法的灵活使用。也能叫做sql的自动化。sql语句只需要业务层传入即可实现sql的使用】
    4.在模型中使用前缀的表的控制【也是在表设置前的配置】
    对配置的读取和拼接使用即可。

    sql语句中,使用反引号做关键字的声明,可以再sql语句中使用面向对象的调用。【{$this->method()}、{$this->proporty}实现对对象中成员的访问,来实现动态的配置表的前缀,以及表的获取等等。将sql语句的写法更加动态化】

    【基于sql语句中使用面向对象的调用方法来实现sql的自动化的写法,使得sql的封装性也能变得非常强】
    【这一段的sql的重新拼凑的写法对sql处理的代码的调用严格化,传入要操作的表名,字段等实现对数据库的操作。这样能够做到sql工具类的优化】
    【工具类:http://blog.sina.com.cn/s/blog_6568a85d0100ltyj.html。完善工具类实现自动处理(增删改查)的功能,更强的封装性】


    5.文件上传类实现:
    从浏览器到服务器上上传文件。

    数据在存储或传输时,所有数据传输的格式有:字节码,二进制码。
    普通字符串上传到服务器上是通过字节码进行传输。
    文件上传的编码时二进制码。
    默认情况下,浏览器不会处理二进制编码,将数据转为字节码处理。【所以需要进行声明】


    【上传文件本质上都是浏览器在做,服务器在接收,跟脚本无关。脚本负责系统管理】

    上传文件的步骤:
    (1)告诉浏览器,当前表单内,有需要被二进制编码的数据(enctype="multipart/form-data")【声明上传的数据是二进制编码】
    (2)服务器指定的脚本下,进行文件的处理【也是两种形式:对字节码保存在$_POST变量内,对二进制编码处理:放在一个临时文件夹内(在sleep处理时间内,可以看到临时文件夹中保存了该文件。否则看不出来)】
    (3)对上传到服务器上的文件进行处理【路径,文件类型管理(http协议中就有对文件类型的管理mime类型),文件重命名】【上传文件的信息被保存在$_FILES中,保存文件的相关信息,然后对该信息进行改动,实现类似linux命令来操作文件的相关能力】
    【这才是上传文件的实现本质!!!!】
    (4)上传成功后返回指定文件的路径


    脚本本身就是类似linux脚本一样,也是对服务器资源的处理


    【对本质了解之后,完成一个上传文件的工具类】
    【注意php.ini中关于文件上传的配置问题(两个配置问题:upload和post对文件的限制)】

    【文件上传中出现的错误:$_FILES中的error报错】
    (1)两个配置对文件的大小有限制
    (2)文件并未上传完或没有上传文件就提交
    (3)保存上传文件的临时文件夹有错误

  • 相关阅读:
    集合类学习之ArrayList源码解析
    集合类学习之Hashmap机制研究
    基于 HTTP/2 的全新 APNs 协议
    tcp协议头窗口,滑动窗口,流控制,拥塞控制关系
    TCP、UDP、IP 协议分析
    /proc/net/tcp中各项参数说明
    linux系统limit知识
    随机行
    nf_conntrack被启用导致服务故障
    HTTP 2.0的那些事
  • 原文地址:https://www.cnblogs.com/shuoshuren/p/4234651.html
Copyright © 2020-2023  润新知