zoukankan      html  css  js  c++  java
  • 验证码确保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)保存上传文件的临时文件夹有错误

  • 相关阅读:
    【Educational Codeforces Round 101 (Rated for Div. 2) C】Building a Fence
    【Codeforces Round #698 (Div. 2) C】Nezzar and Symmetric Array
    【Codeforces Round #696 (Div. 2) D】Cleaning
    【Codeforces Round #696 (Div. 2) C】Array Destruction
    【Educational Codeforces Round 102 D】Program
    【Educational Codeforces Round 102 C】No More Inversions
    【Good Bye 2020 G】Song of the Sirens
    【Good Bye 2020 F】Euclid's nightmare
    使用mobx入门
    requestAnimationFrame 控制速度模拟setinterval
  • 原文地址:https://www.cnblogs.com/shuoshuren/p/4234651.html
Copyright © 2011-2022 走看看