У меня есть скрипт php, который генерирует изображение и используется (в основном) так:
<img src="user_image.php?id=[some_guid]" />
Скрипт использует класс, который я написал, для отображения изображения, соответствующего этому идентификатору. Хотя есть ряд вещей, которые могут пойти не так, и каждая из них создает исключение. Итак, у меня есть что-то вроде этого:
<?php
try {
if( ! isset($_GET['id']) ) throw new Exception;
$images = new User_Images;
$images->display($_GET['id']);
} catch( Exception $e ) {
header('location: images/link_error.png');
}
Если я смотрю это из браузера, все в порядке - если произошла ошибка, адрес в адресной строке изменится на images/link_error.png
и отобразит это вместо этого.
Но когда этот скрипт используется в теге <img>
, и при захвате изображения возникает ошибка, он вообще не отображается.
Переадресация заголовка не работает таким образом? Как еще я могу это сделать?
обновление
Нет проблем, перенаправления браузера работают так, проблема заключалась в том, что мой браузер кэшировал пустое изображение, которое было возвращено до того, как было произведено перенаправление. Жесткое обновление ( Ctrl + F5 для Firefox) исправил это и начал работать как обычно.