0

有没有办法让我逃脱>,我有一个组合框,下面有一个选项。我尝试替换>为,>但仍然无法正确上传。

<select name="Category3" id="Category3">
<option value="Request |Running > 1 hour">Request |Running > 1 hour</option>

它应该上传的只是Request |Running > 1 hour

但上传的是:请求|运行> 1小时1小时'/>

我不知道剩下的1 小时在哪里' />

我尝试删除>它,它只是上传了请求|运行 1 小时而没有超过1 小时'/>但我需要它以保持一致性

这是我用来上传到数据库的 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>"; 
4

1 回答 1

2

每当您显示可能包含特殊 HTML 字符的文本时,您应该使用htmlentities()它来正确编码,这样这些字符就不会导致 HTML 被错误解析(或者更糟的是,允许脚本注入)。

$cat2 = htmlentities($info['category_2']);
echo  "<td align='center'>" . $cat2 . "<input type='hidden' name='category_2[]' value='" . $cat2 . "' /> </td>";

你也错过了'after value=。我已经添加了(并引用了所有其他属性)。

由于您要创建多个具有相同名称的输入,因此您需要为它们提供一个数组样式的名称,以便服务器脚本可以获取所有值。$_POST['category_2']将是一个数组。

于 2013-07-29T21:44:50.153 回答