我正在为老板建立一个PHP内部网。一个简单的客户,订单,报价系统。它将被拒绝从Internet访问,并且只能由3个人使用。我对安全性的关注不如对验证的关注。 Javascript在所有计算机上均被禁用。

我的问题是这样的:

  • 员工将有效数据输入包含以下任何:;[]"'等的表单中。
  • 将数据$ _POSTS存入validationAndProcessing.php页面,并确定员工是否在字段中输入了数据。如果不是,则将其重定向回数据输入页面,而错过的字段将以红色突出显示。
  • htmlspecialchars()适用于所有从先前输入的数据重新填充到表单的数据。
  • 如果成功的数据输入到数据库中,并且雇员被带去显示数据页面,那么
  • 表单将被重新提交到validationAndProcessing.php页面。

  • 我的问题是这样的:

    如果员工在步骤1中重复输入任何数据,则每次将htmlspecialchars()应用于数据时,他们将在步骤1和4之间继续移动。
    So that:- &
    becomes:- &
    becomes:- &
    becomes:- &
    

    等等..

    如何停止将htmlspecialchars()多次应用于已清除的数据?

    谢谢,
    亚当

    最佳答案

    检查manual page on htmlspecialchars:


    $double_encode选项应该是您想要的。

    但是,在正确设置的数据流中,这根本不可能,除非从用户或第三方服务传入的数据可能包含或可能不包含HTML编码字符。 (并不是说我在职业生涯中并没有建立一些不正确的数据流。但这就是为什么我知道为什么它如此干净并且定义明确如此重要的原因。:-)

    关于php - htmlspecialchars()-如何以及何时使用并避免多次使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2957324/

    10-09 23:58