我是否在第2页的$_GET['search']
上使用了htmlspecialchars?在将$_GET['search']
添加到变量之前,我是否必须从第3页的mysql_real_escape_string
中删除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>
PAGE3
$search = mysql_real_escape_string($_POST['test']);
//insert into mysql database
答案 0 :(得分:2)
我是否在第2页的
$_GET['search']
上使用了htmlspecialchars?
如果您有一些文本并且即将输出为 HTML ,则使用htmlspecialchars
。
这就是你在第二个例子中所做的,所以是的,你愿意。
我不必在第3页上从
$_GET['search']
删除htmlspecialchars
没有。浏览器会解析HTML以生成文本值。
(这也意味着浏览器不提交HTML安全数据,因此当您获取数据库的 out 数据时,您可以在将htmlspecialchars
输出到HTML文档之前使用它)。
在将mysql_real_escape_string
添加到变量之前
请勿使用mysql_real_escape_string
,use prepared statements and parameterized queries。