【发布时间】:2014-03-28 16:28:29
【问题描述】:
我有一个应用程序,比如说 150 页,让我们说 2000 个输入字段、文本区域和选择框。现在所有输入字段都调用原始函数 echo 对数据。
例如
<input type="text" name="in_county" value="<? echo $citiesRow["county"]; ?>">
而实际上所有函数都应该调用类似
<input type="text" name="in_county" value="<? echo htmlspecialchars($citiesRow["county"] , ENT_COMPAT , "ISO-8859-1"); ?>">
现在我可以访问所有 150 个页面并更改/替换所有 2000 个字段
现在好了,在整个项目中这样做很糟糕,对吧?
我想,我可以以某种方式(?)覆盖 echo 函数并保持良好状态。或者搜索用mysaveechofunction()替换所有echo调用
你的方法是什么?
奖金问题: 是否有理由不在整个 Web 应用程序的所有回声上使用 htmlspecialchars?
【问题讨论】:
-
不可能“覆盖回声”,因为
echo不是函数,而是语言结构。我会采用您的第二种方法并将其替换为自定义函数。 -
第二个选项.... 在编写它们时应该在第一个地方完成
-
echo不保留用于打印到 HTML 页面。如果可以“覆盖”它以在每次使用时自动转义 HTML,那将是一场灾难并破坏各种数据。另外,当然,你永远不能用它来打印 HTML 代码......