Не удается получить изображение для отображения на динамических страницах

#php #mysql

#php #mysql

Вопрос:

Кажется, я не могу правильно отобразить свое изображение. Ранее я использовал следующий фрагмент кода, и он работал отлично.

catalog.php (сработало отлично):

 <p class="image">
<a href="synopsis.php?id=<?php echo $row['id']; ?>">
<img src="getImage.php?id=<?php echo $row['id']; ?>" alt="" width="175" height="200" />
</a>
</p>
  

synopsis.php (изображение вообще не отображается):

 <?php

$id = $_GET['id'];
...?>
<p class="image">


<img border="0" class="floatleft" src="getImage.php?id=<?php echo $row['id']; ?>" width="250" height="400" />


<?php echo $row['synopsis']; ?>
</p>
  

где getimage.php:

 <?php

$id = $_GET['id'];

$link = mysql_connect("localhost", "root", "");
mysql_select_db("dvddb", $link);
$sql = "SELECT dvdimage_path FROM dvd WHERE id=$id";
$result = mysql_query($sql, $link);
$row = mysql_fetch_assoc($result);
mysql_close($link);

header("Content-type: image/jpeg");
echo file_get_contents($row['dvdimage_path']);

?>
  

Есть идеи, почему я не могу отобразить это изображение?

РЕДАКТИРОВАТЬ 1: итак, после отладки я получил сообщение об ошибке:

Undefined index: id in C:xampphtdocssynopsis.php on line 106

поэтому я решил добавить следующий код в код php непосредственно перед echo $row[‘id’]:

 <p>getImage.php?id=<?php error_reporting(0); echo $row['id']; ?></p>
  

Однако
абзац, который я получил, был просто getImage.php?id= .

Затем я зашел в synopsis.php -> <img border="0" class="floatleft" src="getImage.php?id=<?php echo $row['id']; ?>

и изменил это на:

<img border="0" class="floatleft" src="getImage.php?id=2">

Опять же, возникает та же проблема, когда я не могу получить конкретное изображение.

Я подозреваю, что что-то не так с моим getimage.php досье. Однако это getimage.php файл отлично работает для других страниц, когда я использую фрагмент кода.

Мои требования очень просты: в catalog.php , я заполняю изображения и текст из базы данных dvd с помощью цикла while. Затем каждое из этих изображений имеет свой конкретный первичный идентификатор. когда я нажимаю на изображения, они переходят по ссылке: synopsis.php?id=»primaryid» Затем, используя этот «primaryid», я должен иметь возможность использовать getimage.php ? «primaryid» для создания изображения на synopsis.php страница.

РЕДАКТИРОВАТЬ 2: на самом деле, я где-то допустил синтаксическую ошибку. Итак, эта строка:

<img border="0" class="floatleft" src="getImage.php?id=2">

работает отлично, это означает, что ошибка заключается в том, что я не могу правильно отобразить «идентификатор».

РЕДАКТИРОВАТЬ 3:

Я включил ссылки на соответствующий исходный код:

catalog.php

synopsis.php

getimage.php

sortmenu.css

style.css

база данных в формате xml

Комментарии:

1. Попробуйте отладить свой PHP. Посмотрите на ваш сгенерированный HTML, особенно проверьте, src img работает ли он (просто скопируйте и вставьте ссылку в свой браузер)

2. @JMax привет, как точно отлаживать PHP? не могли бы вы помочь мне?

3. Повторите свой src=»»-content, чтобы узнать, не является ли проблема (по какой-либо причине) в том, что URL-адрес изображения определен неправильно. Также имейте в виду, что вы должны использовать полный путь к изображениям при работе с динамическими страницами.

4. @exxcellent: tinyurl.com/3clysnn

Ответ №1:

Вопросы, которые нужно задать себе:

  1. Действительно ли требуется, чтобы вы использовали php-скрипт для имитации изображения? Если нет, просто используйте путь к изображению.
  2. Есть ли какой-либо вывод перед функцией header(); в getimage.php досье? Даже просто пробел перед
  3. Действительно ли изображение в формате JPEG?
  4. Возникают ли какие-либо ошибки при переходе к getimage.php?id=ID в вашем браузере?

Комментарии:

1. Для вопроса 1 мне нужно использовать php-скрипт для анализа ID. Вопрос 2, нет, другого вывода нет. Вопрос 3, да jpge. Вопрос 4, нет, ошибок нет, я вижу требуемое изображение в getimage.php?id=ID

2. Конечно, вы могли бы просто проанализировать идентификатор перед выводом пути к изображению? Это сохранит все пути к изображениям, относящиеся к PHP-скрипту (что плохо по многим причинам — если вы не делаете с ним больше, чем просто отображение изображения — например, проверка наличия у пользователя разрешений на просмотр изображения).

Ответ №2:

В synopsis.php вы получаете идентификатор из строки запроса, но затем пытаетесь использовать значение базы данных. Я не могу видеть весь ваш код, поэтому я публикую решения для двух сценариев

 src="getImage.php?id=<?php echo $id; ?>"
  

или

 src="getImage.php?id=<?php echo $row[$id]; ?>"