我从用户可以输入双引号的表单中获取用户输入。但是,当我尝试在html中回显它时,它只显示双引号之前的所有内容,在前面的示例中它只显示6。
我使用带有下拉菜单框的表单并为每个选项设置值,这里是代码:
<form action="component/content/article?id=11" method="POST">
<select name="categories">
<?php
$username="user";
$password="308715cr";
$database="test";
mysql_connect(localhost,$username,$password);
mysql_select_db($database) or die( "Unable to select database");
$query="SELECT DISTINCT CATEGORY FROM inventory";
$result=mysql_query($query);
while ($row=mysql_fetch_array($result)){
echo ("<option value=\"$row[CATEGORY]\">$row[CATEGORY]</option>");
}
echo "</select>";
?>
<input type="submit" value"Search"/>
</form>
我使用POST来检索数据。然后我把它显示为a和那就是问题所在。页面加载,但如果内部有双引号,$ category字符串将被截断。例如&lt; 6“Tropical Premium $ 8.99&gt;显示为&lt; 6&gt;。这是代码:
<?php
$category = filter_input(INPUT_POST, 'categories');
?>
<h1>Category:<?php echo $category;?></h1>
答案 0 :(得分:1)
您必须在filter_input
函数FILTER_SANITIZE_FULL_SPECIAL_CHARS
中使用此功能。
$category = filter_input(INPUT_POST, 'categories', FILTER_SANITIZE_FULL_SPECIAL_CHARS );
希望这会有所帮助。
答案 1 :(得分:0)
信息很少继续,但如果你可以试试这个: &LT; 6 \&#34;热带高级$ 8.99&gt; 如果它有效,那么你就知道你的问题....你需要逃避双重报价