Приведенный ниже код по какой-то причине приводит к сбою 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>
Вам действительно нужно либо использовать параметризованный запрос (см. Библиотеку MDB2 PEAR), либо вызвать mysql_real_escape_string () для $ a, прежде чем включать его в строку запроса, или вы оставите себя открытым для инъекций SQL. В качестве альтернативы, если это всегда должно быть число, сначала вызовите для него intval ().






Сгенерированный код не приводит к сбою IE6 для меня. Вероятно, это может быть одна из ваших таблиц стилей или javascript, а может быть, это просто моя установка (IE6 здесь используется как автономный браузер).
Кроме того, почему у вас есть эти двойные амперсанды? Вы уверены, что не хотите использовать вместо него &?
Согласовано. Браузер падает из-за HTML, а не из-за PHP.
вот сгенерированный код:
<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en">
<head>
<meta http-equiv = "Content-Type" content = "text/html; charset=utf-8"/>
<script type = "text/javascript" src = "../javascript/tiny_mce/tiny_mce.js"></script>
<script type = "text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "advanced"
});
</script>
<title>Chapman Corp Site - CMS</title>
<link rel = "stylesheet" href = "../css/admin.css" type = "text/css" media = "screen" title = "Chapman" charset = "utf-8" />
<!--[if lte IE 6]>
<link rel = "stylesheet" href = "../css/ie6.css" type = "text/css" media = "screen" />
<script type = "text/javascript" src = "../javascript/unitpngfix.js"></script>
<![endif]-->
</head>
<body>
<div id = "page">
<div id = "content">
<p><a href = "index.php">Home</a></p><div id = "edit">
<table width = "460px;">
<tr>
<td>Item</td>
<td> </td>
<td> </td>
<td> </td>
<td>Associated Images</td>
</tr>
<tr>
<td colspan = "5"> </td>
</tr>
<tr style='vertical-align:top'><td>Home</td><td><a href='addimage.php?id=77&&category=1'>Add image/file</a><td><a href='change.php?id=77&&category=1'>edit</a></td><td><a href='delete.php?id=77&&category=1'>delete</a></td><td><a href='../uploads/footer.jpg'>footer.jpg</a> | <a href='delete.php?id=88&&category=1'>remove?</a><br /></td></tr></div>
</div>
</div>
</table>
</body>
</html>
Дрю: Удалите строку <script type = "text / javascript" src = "../ javascript / unitpngfix.js"> </script>, а затем посмотрите, вызывает ли это по-прежнему сбой страницы.
Не знаю, причина сбоя, но тег td в строке
echo "<td><a href='addimage.php?id=$row[id]&&category=$a'>Add image/file</a>";
не закрывается. Также:
</div>
</div>
</div>
</table>
должно быть:
</table>
</div>
</div>
</div>
Кроме того, из соображений безопасности проверьте, является ли $a числовым, прежде чем использовать его в запросе ниже.
$a = $_POST['category'];
if ($a == "")
{
$a = $_GET['category'];
}
$result = mysql_query("SELECT * FROM media WHERE related_page_id = $a && type= 'copy'");
Пожалуйста, публикуйте сгенерированный HTML-код, так как он вызывает сбой IE, а не код PHP.