Нечетные сущности в сгенерированном тексте (хром странный) - PullRequest
0 голосов
/ 12 октября 2010

Я работаю над школьным проектом с двумя одноклассниками. Наша задача - создать динамическую галерею для Интернета.
Таким образом, мы полностью запустили всю галерею, за исключением того, что Chrome ведет себя очень странно.
У нас есть фотографии, загруженные в BLOB, а также миниатюры. Загружаем их из базы через php.

<div id="content_right">
<?php
if(isset($_GET['c'])) {
$c = $_GET['c'];
$thumbs_sql = mysql_query("SELECT foto_id
     FROM `fotos`
     INNER JOIN foto_cat ON fotos.foto_cat = foto_cat.cat_id
     WHERE fotos.foto_cat = $c");
}
else{
$thumbs_sql = mysql_query("SELECT foto_id 
     FROM fotos 
     INNER JOIN foto_cat ON fotos.foto_cat = foto_cat.cat_id
     ORDER BY RAND() LIMIT 8");
}
while($getthumbs = mysql_fetch_array($thumbs_sql))
{
 $thumb_id = $getthumbs["foto_id"];
 $picsource = 'inc/thumbnails.php?thumb='.$thumb_id;
 $thumb .= '<div class="ikon">
 <img alt="'.$thumb_id.'" src="'.$picsource.'" value="inc/picture.php?pic='.$thumb_id.'" />
</div>';
}
echo $thumb;
?>
</div>

Дело в том, что он отлично работает в любом браузере, кроме Chrome. Проблема в том, что браузер (или сервер), кажется, добавляет очень странную сущность в наш файл-источник (для тега img). Это не может быть отображено в источнике страницы, ни повторяя источник. Он виден только через инструменты разработчика Chrome и отображается в виде квадрата (неизвестная сущность?). Размещается сразу после "inc /".

alt text (рисунок-пример проблемы в инструментах разработчика Chrome.)

Это не только кажется странным, но и прекрасно работает в chrome, когда мы используем localhost (wamp / mamp / xampp и т. Д.). Аналогично, изображение все еще может быть загружено / просмотрено, если жестко закодировано либо в строке URL, либо в источнике.
Мы попытались преобразовать его в строку, добавить косую черту через php, установить enctype и все остальное, о чем мы могли подумать.
Это заставляет нас верить, что это проблема сервера? Мы ошибаемся?
А если нет, то есть ли обходной путь через кодирование?

Галерея жива в http://46246.rtsphp.dk/gallery/index.php.
Дайте мне знать, если вам нужно больше файлов, чем это, или что-нибудь еще. Любая помощь будет принята с благодарностью, поскольку мы сами не имеем понятия: S

~ Esben Tind (esbentind в gmail dot com)

Ответы [ 2 ]

3 голосов
/ 12 октября 2010

Это проблема на стороне сервера. Ваш скрипт thumbnails.php отправляет следующий заголовок:

Содержание-Диспозиция: вложение; имя файла = nytaar1.jpg

Это заставляет браузер пытаться загрузить файл. Я бы посоветовал поискать его в thumbnails.php и удалить.

0 голосов
/ 12 октября 2010

Вам необходимо кодировать все значения HTML, которые вы используете в HTML, используя функцию htmlspecialchars(), например:

<img alt="'.htmlspecialchars($thumb_id).'" src="'.htmlspecialchars($picsource).'" value="inc/picture.php?pic='.htmlspecialchars($thumb_id).'" />

В противном случае, если какое-либо из значений по какой-либо случайности содержит символы & или аналогичные, вы создаете недопустимый HTML, а вывод не определен - некоторые браузеры могут правильно угадать, что вы имели в виду, другие ошибочно или просто откажутся отрисовать HTML.

...