2012-07-29 86 views
0

可能重复:
How to properly escape html form input default values in php?如何为html输入(使用php)转义引号?

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

$lmao=$_POST['lmao']; 

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

如果人物进入的变量,它会导致便便,并且在重新提交时也有数据丢失。

我当然可以:

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

但如果我想保持这种报价?

+0

http://php.net/htmlspecialchars – 2012-07-29 08:59:53

+1

很多很多很多重复。 – Hamish 2012-07-29 09:00:31

回答

2

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

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

那一个工作。 – Anonymous 2012-07-29 09:02:49

+1

不要忘记使用htmlspecialchars时需要考虑字符集和HTML版本! 'htmlspecialchars($ lmao,ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML5,'UTF-8')' – GordonM 2012-07-29 09:07:25