2012-07-29 18 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