FILTER_SANITIZE_EMAIL与FILTER_VALIDATE_EMAIL错误使用

      接到个小任务,需要验证字符是否是邮箱,本着“偷懒原则”,想到了用filter_var函数来解决问题。在传入filter的时候错使用了FILTER_SANITIZE_EMAIL。debug的时候发现不对,后来查看一下手册。应该使用FILTER_VALIDATE_EMAIL。在翻了一手册,得到答案:

      FILTER_SANITIZE_EMAIL:过滤器删除字符串中所有非法的 e-mail 字符
      FILTER_VALIDATE_EMAIL:过滤器把值作为电子邮件地址来验证

     囧,又犯了一个低级错误。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`filter_input()` 是 PHP 中一个用于过滤输入数据的函数,它可以对输入的数据进行过滤并返回过滤后的结果。使用 `filter_input()` 函数可以有效地防止 SQL 注入、跨站脚本攻击等安全问题。 `filter_input()` 函数的语法如下: ```php filter_input ( int $type , string $variable_name [, int $filter = FILTER_DEFAULT [, mixed $options ]] ) : mixed ``` 其中,`$type` 参数表示输入变量的类型,如 `INPUT_GET` 表示获取通过 HTTP GET 方法提交的输入变量,`INPUT_POST` 表示获取通过 HTTP POST 方法提交的输入变量,`INPUT_COOKIE` 表示获取通过 HTTP Cookie 方法提交的输入变量等。 `$variable_name` 参数表示要获取的输入变量的名称。 `$filter` 参数表示要应用的过滤器类型,如 `FILTER_SANITIZE_STRING` 表示过滤掉字符串中的 HTML 标签和不可见字符等。 `$options` 参数用于指定过滤器的选项,可以根据不同的过滤器类型来指定不同的选项。 下面是一个使用 `filter_input()` 函数过滤输入的示例: ```php // 过滤名为 "name" 的 GET 参数,只允许输入字母和数字 $name = filter_input(INPUT_GET, 'name', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_ALPHA); ``` 上述代码中,`INPUT_GET` 表示获取通过 HTTP GET 方法提交的输入变量,`'name'` 表示要获取的输入变量名称,`FILTER_SANITIZE_STRING` 表示过滤掉字符串中的 HTML 标签和不可见字符,`FILTER_FLAG_STRIP_ALPHA` 表示过滤掉字符串中的非字母和数字字符。 需要注意的是,过滤器并不能完全保证输入数据的安全性,还需要结合其他安全措施来提高系统的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值