有没有办法可以逃脱>
,我有一个组合框,下面有一个选项。我尝试将>
替换为>
,但仍未正确上传。
<select name="Category3" id="Category3">
<option value="Request |Running > 1 hour">Request |Running > 1 hour</option>
它应该上传的只是请求|正在运行&gt; 1小时
但上传的内容是:请求|正在运行&gt; 1小时1小时'/>
我不知道它在哪里得到另一个 1小时'/&gt;
我尝试删除>
并刚刚上传请求|运行1小时而没有超出 1小时'/&gt; 但我需要它以保持一致性
这是我用来上传到db的php代码
<?php
error_reporting(0);
require 'include/DB_Open.php';
$Category3 = mysql_real_escape_string ($_POST['Category3']);
if (isset($ABC))
{
$sql="INSERT into XXX category_2
VALUES ('".$Category3."')";
$result=mysql_query($sql)or die(mysql_error());
}
?>
这是我的检索数据的代码
$sql="SELECT category_2
FROM XXX
WHERE resolved_date BETWEEN '" . $date . "' AND '" . $date1 . "'
ORDER BY resolved_date";
$myData = mysql_query($sql);
//to count if there are any results
$numrow = mysql_num_rows($myData);
if($numrow == 0)
{
echo "No results found.";
}
else
{
echo "$numrow";
}
{
echo "<table width='auto' cellpadding='1px' cellspacing='0px' border=1 align='center'>
<tr>
<th align='center'><strong>Category 3</strong></th>
</tr>";
while($info = mysql_fetch_array($myData))
{
echo "<form action='retrieve.php' method='post'>";
echo"<tr>";
echo "<td align='center'>" . $info['category_2'] . "<input type=hidden name=category_2 value=" . $info['category_2'] . "' /> </td>";
echo "</tr>";
echo "</form>";
}
}
echo "</table>";
答案 0 :(得分:2)
每当您显示可能包含特殊HTML字符的文本时,您应该使用htmlentities()
对其进行正确编码,因此这些字符不会导致HTML被错误分析(或者更糟糕的是,允许脚本注入)。
$cat2 = htmlentities($info['category_2']);
echo "<td align='center'>" . $cat2 . "<input type='hidden' name='category_2[]' value='" . $cat2 . "' /> </td>";
'
之后你也错过了value=
。我已经添加了(并引用了所有其他属性)。
由于您要创建具有相同名称的多个输入,因此需要为它们指定一个数组样式的名称,以便服务器脚本可以获取所有值。 $_POST['category_2']
将是一个数组。