2012-07-02 53 views
0

我是否在第2頁的$_GET['search']上使用htmlspecialchars?在我將mysql_real_escape_string添加到變量之前,我不需要從第3頁的$_GET['search']中刪除htmlspecialchars?如果是的話......我如何刪除htmlspecialchars?刪除htmlspecialchars?

第1頁

$searchterm = "test"; //users search term 
echo "<a href='page2?seach=test'>test</test>"; 

第2頁

$var = htmlspecialchars($_GET['search']); 
<form action='page3' method='post'><input type='text' name='test' value='$var' /><input type='submit' value='submit'/></form> 

第3頁

$search = mysql_real_escape_string($_POST['test']); 
//insert into mysql database 

回答

2

我是否Page2上使用的htmlspecialchars上$_GET['search']

您使用htmlspecialchars當你有一些文字和將要輸出爲HTML

這就是你在第二個例子中所做的,所以是的,你會這樣做。

就沒有我必須從$_GET['search']在第3頁取出用htmlspecialchars

號的HTML是由瀏覽器產生一個文本值解析。 (這也意味着瀏覽器不會提交HTML安全數據,所以當您將數據庫中的數據取出爲時,那麼在將其輸出到HTML文檔之前,您將使用htmlspecialchars)。

之前我添加mysql_real_escape_string到變量

不要使用mysql_real_escape_stringuse prepared statements and parameterized queries

+0

好的...所以如果我要在第3頁上輸出$ _GET ['search']作爲HTML,我將不得不再次使用htmlspecialchars? – user892134

+0

是的。它是文本數據,因此在將其輸出到HTML文檔之前將其轉換爲HTML。 – Quentin