gpt4 book ai didi

php - mysqli_real_escape_string 与 filter_input()?我应该使用什么方法?

转载 作者:行者123 更新时间:2023-11-29 11:44:46 24 4
gpt4 key购买 nike

我不知道何时使用它们中的每一个。

$name = mysqli_real_escape_string($connection, $_POST['name']); 

$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);

最佳答案

real_escape_string() 必须用于 sql 字符串,即用引号括起来的查询部分。无论之前进行过何种操作,都必须无条件使用。 real_escape_string() 转义字符串中的特殊字符以在 SQL 语句中使用,同时考虑连接的当前字符集。

哪里

filter_input 按名称获取特定的外部变量并可选择对其进行过滤。 filter_input 将为您提供验证特定字符串和字符的输入的方法。

  1. 验证过滤器
  2. 对过滤器进行 sanitizer
  3. 其他过滤器
  4. 过滤标志

验证过滤器

顾名思义,它用于验证特定输入,例如 FILTER_VALIDATE_EMAIL

$email = "abc@example"; // wrong email

if(filter_var($email, FILTER_VALIDATE_EMAIL)){
echo $email.'<br>';
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
}else{
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
}

sanitizer 过滤器它将用于验证和删除字符串中的字符。

FILTER_SANITIZE_EMAIL   "email"         Remove all characters except letters, digits and !#$%&'*+-=?^_`{|}~@.[]. 

有关filter_value的更多信息.

所以我认为两者都扮演着不同的角色。

关于php - mysqli_real_escape_string 与 filter_input()?我应该使用什么方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35147647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com