剝去一個輸入框的報價我有這樣的:如何使用PHP
<input name="title" type="text" class="inputMedium" value="' . $inputData['title'] . '" />
我要剝去用戶輸入的報價,這樣,如果有人進入類似: 「這是我的標題是」它不會弄亂我的代碼。
我嘗試這樣做,它不工作: $ inputData [ '標題'] = str_replace函數( '「', '',$ _ POST [ '標題']);
剝去一個輸入框的報價我有這樣的:如何使用PHP
<input name="title" type="text" class="inputMedium" value="' . $inputData['title'] . '" />
我要剝去用戶輸入的報價,這樣,如果有人進入類似: 「這是我的標題是」它不會弄亂我的代碼。
我嘗試這樣做,它不工作: $ inputData [ '標題'] = str_replace函數( '「', '',$ _ POST [ '標題']);
如果我理解正確的問題,你想從刪除"
0所以你的HTML代碼不會搞砸了嗎?
如果是這樣,「正確」的解決方案是不去除雙引號,但要在轉義之前做實際輸出。
考慮你生成HTML,你應該使用htmlspecialchars
功能;這樣,雙引號(和幾個其他字符)將被編碼爲HTML實體,並且在注入HTML標記時不會造成任何麻煩。
例如:
echo '<input name="title" type="text" class="inputMedium" value="'
. htmlspecialchars($inputData['title'])
. '" />';
注:根據您的情況(特別是關於編碼/字符集,你可能會使用),你可能一些其它附加參數傳遞給htmlspecialchars
。
一般來說,您應該始終將您發送的數據作爲輸出轉義,無論輸入格式爲何種類型。
例如:
htmlspecialchars
mysql_real_escape_string
,或等效的,這取決於類型你正在使用的數據庫用戶輸入應該通過htmlspecialchars()
運行在這種情況下使用。
感謝您的詳細解釋 – Babak 2010-02-17 20:44:42
不客氣:-)玩得開心! – 2010-02-17 20:54:25
只要注意:可以在輸入html中使用單引號而不是雙引號(如)。但是由於htmlspecialchars單獨留下單引號,這可能是一個安全漏洞? – Sam 2010-02-28 23:21:11