PHP-скрипт вызывает сбой IE6

Приведенный ниже код по какой-то причине приводит к сбою 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>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>Associated Images</td>
    </tr>
    <tr>
        <td colspan = "5">&nbsp;</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'>&nbsp;</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.

Marko Dumic 10.10.2008 13:40

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

Randy 10.10.2008 14:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
931
3

Ответы 3

Сгенерированный код не приводит к сбою IE6 для меня. Вероятно, это может быть одна из ваших таблиц стилей или javascript, а может быть, это просто моя установка (IE6 здесь используется как автономный браузер).

Кроме того, почему у вас есть эти двойные амперсанды? Вы уверены, что не хотите использовать вместо него &amp;?

Согласовано. Браузер падает из-за HTML, а не из-за PHP.

skeen 10.10.2008 13:46

вот сгенерированный код:

<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>&nbsp;</td>
        <td>&nbsp;</td>

        <td>&nbsp;</td>
        <td>Associated Images</td>
    </tr>
    <tr>
        <td colspan = "5">&nbsp;</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>, а затем посмотрите, вызывает ли это по-прежнему сбой страницы.

Tom 11.06.2009 20:41

Не знаю, причина сбоя, но тег 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'");

Другие вопросы по теме