4
<?php
    echo $_GET['id'];
?>

对我来说看起来不太安全.. 展示GET元素的最佳选择是什么?

preg_replace所有特殊字符上都有类似的东西,或者htmlspecialchars

4

5 回答 5

5

取决于你在做什么$_GET['id'];

如果您希望将其插入数据库,只需使用Prepared Statements. 【够了】

如果您只想在 HTML 页面上显示它,请使用此代码。

<?php
    echo htmlentities($_GET['id']);
?>
于 2013-11-02T16:55:56.450 回答
3
<?php
    echo htmlspecialchars($_GET['id']);
?>
于 2013-11-02T16:54:23.930 回答
3

htmlspecialchars() 如果它是一个字符串,或者如果它是数字则转换为适当的类型(intval() 或 (int) 等),例如:

$id = (int)$_GET['id'];
//or
echo (int)$_GET['id'];
于 2013-11-02T16:56:32.480 回答
2

如果是id,我认为它应该是数字 - 然后echo intval($_GET['id']);

于 2013-11-02T16:55:24.743 回答
1

这应该足够了:

htmlspecialchars($_GET['id'], ENT_QUOTES, "UTF-8");
于 2013-11-02T16:54:57.363 回答