php - 应该在 isset() 和empty() 之前还是之后使用 htmlspecialchars() ?

标签 php

我想知道在安全性和实用性方面什么是正确的程序。在检查变量是否已设置且为空之前,是否应该对变量使用 htmlspecialchars() ?

示例:

使用 htmlspecialchars() 来使用或存储发布数据:

$field = $_POST['field'];
if(isset($field)){
    //store or use: htmlspecialchars($field);
}

或者您应该使用 htmlspecialchars() 来检索帖子数据:

$field = htmlspecialchars($_POST['field']);
if(isset($field)){
    //store or use: $field
}

这可能是一个愚蠢的问题,但我想知道哪个是正确的。

最佳答案

嗯,这样想吧。我们为什么首先使用 isset ?答案是保护我们的代码不尝试用不存在的东西做事。

例如,在控制台中使用php -a,您可以看到:

php > $temp
php > echo htmlspecialchars($temp);

Parse error: parse error in php shell code on line 2
php >

显然您不希望代码抛出解析错误。因此,您需要首先检查该值是否存在(使用 isset),然后使用该值执行操作。

关于php - 应该在 isset() 和empty() 之前还是之后使用 htmlspecialchars() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35449467/

相关文章:

php - Laravel:orderBy 带有集合的列

php - 我怎样才能用 html 和 php 安排我的表格

php - 将 Magento 连接到 Google Cloud SQL 作为 MySQL 服务器错误

php - 如何仅使用新元素更新 json 文件?

php - 从 MySQL 获取信息

php - 如何使用 php 更新 sql 中的图像

php - 使用 Web 服务访问 Dynamics CRM 2011

php - APNS JSON PAYLOAD - 更多参数

php - 如何授予访问权限在服务器中执行特定的 php 文件?

php - MySQL中计算两个日期之间的差异(字符串格式)