Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的输出帮助_Php_Mysql_Database_Echo - Fatal编程技术网

PHP中的输出帮助

PHP中的输出帮助,php,mysql,database,echo,Php,Mysql,Database,Echo,代码- 从数据库中检索price,然后使用- $price = mysqli_real_escape_string($connect,trim($results['price'])); 问题-这对XSS或SQL注入足够安全吗?它只包括数字 谢谢检查可能应该在数据输入期间进行,但您可以安全地在输出时进行检查。我只想使用或类似的方法来确保输出确实是一个数字。标准做法是使用htmlspecialchars()或htmllenties()将输出转义到浏览器以防XSS。然而,正如在另一个答案中提到的,真

代码-

从数据库中检索price,然后使用-

$price = mysqli_real_escape_string($connect,trim($results['price']));
问题-这对XSS或SQL注入足够安全吗?它只包括数字


谢谢

检查可能应该在数据输入期间进行,但您可以安全地在输出时进行检查。我只想使用或类似的方法来确保输出确实是一个数字。

标准做法是使用
htmlspecialchars()
htmllenties()
将输出转义到浏览器以防XSS。然而,正如在另一个答案中提到的,真正的问题是数据库中是否首先存储了正确的数据。在将其存储到数据库之前,应该对其进行正确验证和转义。

为了安全起见,您需要评估
$results['price']
的输入是否来自用户输入


如果是,则在将其发送到SQL之前,需要将其作为预期值进行强烈验证/清理。

如果您的数据仅从数据库读取,则可以使用mysqli\u real\u escape\u string()忽略。它对于转义应该写入数据库的用户输入非常有用。

mysqli\u real\u escape\u string()用于转义即将插入数据库的数据,以防止SQL注入。它与XSS无关


您必须使用htmlentities()来完成您想做的事情。我建议您阅读eykanal答案,并使用is_numeric进行验证。

is$results['price']user input?@CJD no。这是mysqli_fetch_arraySQL注入,仅当用户操作写入数据库时才会发生。
echo $price;