在html中显示时,php变量不会回显

时间:2014-06-25 00:51:51

标签: php html variables echo

我从用户可以输入双引号的表单中获取用户输入。但是,当我尝试在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>

2 个答案:

答案 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; 如果它有效,那么你就知道你的问题....你需要逃避双重报价