【发布时间】:2015-01-27 17:08:56
【问题描述】:
下面的代码由于某种原因导致 IE6 崩溃。尽管 IE 很糟糕,但我以前从未见过这种情况。有人有什么想法吗?
<div id="edit">
<?php
$a = $_POST['category'];
if ($a == "")
{
$a = $_GET['category'];
}
$result = mysql_query("SELECT * FROM media WHERE related_page_id = $a && type= 'copy'");
?>
<table width="460px;">
<tr>
<td>Item</td>
<td> </td>
<td> </td>
<td> </td>
<td>Associated Images</td>
</tr>
<tr>
<td colspan="5"> </td>
</tr>
<?php
while($row = mysql_fetch_array($result))
{
echo "<tr style='vertical-align:top'><td>$row[title]</td>";
echo "<td><a href='addimage.php?id=$row[id]&&category=$a'>Add image/file</a>";
echo "<td><a href='change.php?id=$row[id]&&category=$a'>edit</a></td>";
echo "<td><a href='delete.php?id=$row[id]&&category=$a'>delete</a></td>";
echo "<td>";
$id = $row['id'];
$result1 = mysql_query("SELECT * FROM media WHERE assets = $id");
while($row1 = mysql_fetch_array($result1))
{
echo "<a href='$row1[path]'>$row1[title]</a> | <a href='delete.php?id=$row1[id]&&category=$a'>remove?</a><br />";
}
echo "</td></tr>";
}
if($a == 1 || $a == 3 || $a == 5){
}else{
echo "<tr><td colspan='5'> </td></tr>";
echo "<tr><td colspan='5'><a href='change.php?id=0&&category=$a'>New Item</a></td></tr>";
}
?>
</div>
</div>
</div>
</table>
</body>
</html>
【问题讨论】:
-
请发布生成的 HTML,因为它会导致 IE 崩溃,而不是 PHP 代码。
-
您确实需要使用参数化查询(请参阅 MDB2 PEAR 库)或在 $a 上调用 mysql_real_escape_string(),然后再将其包含在查询字符串中,否则您将面临 SQL 注入.或者,如果它总是应该是一个数字,请先调用 intval() 。
标签: php html internet-explorer-6