【问题标题】:How do I escape quotes for HTML input (using PHP)? [duplicate]如何转义 HTML 输入的引号(使用 PHP)? [复制]
【发布时间】:2012-07-27 07:42:48
【问题描述】:

可能重复:
How can I properly escape HTML form input default values in PHP?

如果我使用预设的 HTML 输入,例如:

$lmao=$_POST['lmao'];

echo <<<EOD
<input value="{$lmao}" name="lmao" type="text">
EOD;

如果"字符进入变量,会导致poo,并且在重新提交时也会丢失数据。

当然可以:

preg_replace('/"/', '', $lmao);

但如果我想保留那句话怎么办?

【问题讨论】:

标签: php regex security escaping


【解决方案1】:

在 HTML 属性中输出的所有用户输入数据都应通过 htmlspecialchars 运行。这对引号和其他字符进行编码:

echo '<input value="'.htmlspecialchars($lmao).'" name="lmao" type="text">';

【讨论】:

  • 不要忘记在使用 htmlspecialchars 时需要考虑字符集和 HTML 版本! htmlspecialchars ($lmao, ENT_QUOTES|ENT_SUBSTITUTE|ENT_HTML5, 'UTF-8')
猜你喜欢
  • 1970-01-01
  • 2011-02-05
  • 2010-12-08
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 2016-05-21
  • 2016-06-05
  • 2013-04-14
相关资源
最近更新 更多