#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:
Я включил ссылки на соответствующий исходный код:
Комментарии:
1. Попробуйте отладить свой PHP. Посмотрите на ваш сгенерированный HTML, особенно проверьте,
src
img
работает ли он (просто скопируйте и вставьте ссылку в свой браузер)2. @JMax привет, как точно отлаживать PHP? не могли бы вы помочь мне?
3. Повторите свой src=»»-content, чтобы узнать, не является ли проблема (по какой-либо причине) в том, что URL-адрес изображения определен неправильно. Также имейте в виду, что вы должны использовать полный путь к изображениям при работе с динамическими страницами.
4. @exxcellent: tinyurl.com/3clysnn
Ответ №1:
Вопросы, которые нужно задать себе:
- Действительно ли требуется, чтобы вы использовали php-скрипт для имитации изображения? Если нет, просто используйте путь к изображению.
- Есть ли какой-либо вывод перед функцией header(); в getimage.php досье? Даже просто пробел перед
- Действительно ли изображение в формате JPEG?
- Возникают ли какие-либо ошибки при переходе к 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]; ?>"