• ThinkPHP输入验证和I方法使用


    在Web开发过程中,我们经常需要获取系统变量或者用户提交的数据,这些变量数据错综复杂,而且一不小心就容易引起安全隐患,但是如果利用好ThinkPHP提供的变量获取功能,就可以轻松的获取和驾驭变量了。

    在接收变量之前,可以先对请求来源(方式)进行判断

    在很多情况下面,我们需要判断当前操作的请求类型是GET 、POST 、PUT或 DELETE,一方面可以针对请求类型作出不同的逻辑处理,另外一方面有些情况下面需要验证安全性,过滤不安全的请求。

    我们不建议直接使用传统方式获取,因为没有统一的安全处理机制,后期如果调整的话,改起来会比较麻烦。所以,更好的方式是在框架中统一使用I函数进行变量获取和过滤。

    I方法是ThinkPHP众多单字母函数中的新成员,其命名来自于英文Input(输入),主要用于更加方便和安全的获取系统输入变量。

    echo I('get.id'); // 相当于 $_GET['id']

    echo I('get.name'); // 相当于 $_GET['name']

     

    变量过滤

    // 系统默认的变量过滤机制

    'DEFAULT_FILTER' => 'htmlspecialchars'

    第三个参数可以传入函数名,则表示调用该函数对变量进行过滤并返回(在变量是数组的情况下自动使用array_map进行过滤处理),否则会调用PHP内置的filter_var方法进行过滤处理,例如:

    I('post.email','','email');

    系统自带的的函数有:

    1. int
    2. boolean
    3. float
    4. validate_regexp
    5. validate_url
    6. validate_email
    7. validate_ip
    8. string
    9. stripped
    10. encoded
    11. special_chars
    12. unsafe_raw
    13. email
    14. url
    15. number_int
    16. number_float
    17. magic_quotes
    18. callback

    如果未通过验证,则返回空字符串

  • 相关阅读:
    B-tree/B+tree/B*tree
    java拆装箱(转)
    C语言身份证信息查询系统(修改版)
    UC编程:字符读取与行读取
    UC编程:通过fwrite()和write()比较标准库函数和系统调用的速度
    UC编程:输入输出重定向(系统调用)
    UC编程:输入输出重定向(标准IO)
    UC编程:环境变量的查询与修改
    Perl基础(1)chop与chomp的区别
    假期“实习”20天生存实录
  • 原文地址:https://www.cnblogs.com/xiaoliwang/p/8001768.html
Copyright © 2020-2023  润新知