Разбитые изображения в PHP из Dropbox через https - PullRequest
1 голос
/ 26 января 2010

У меня странная ситуация с PHP, работающим не так, как HTML. Я не веб-программист, просто бездельничаю. В HTML мои изображения выглядят нормально, в PHP изображения разбиты. И только общедоступные образы с моего https-сервера Dropbox не работают, из http-сервера работают.

В качестве примера, на моем локальном хосте есть два файла, abc.html и def.php. Они пытаются отобразить два изображения, одно указывает на мое изображение https, а другое указывает на логотип Google.

abc.html:

<img src='https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM'>
<img src='http://www.google.co.uk/intl/en_uk/images/logo.gif'>

def.php:

<?php
echo "<img src='https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM'>";
echo "<img src='http://www.google.co.uk/intl/en_uk/images/logo.gif'>";
exit;

Просмотр abc.html показывает оба изображения идеально. При просмотре в def.php отображается только логотип Google, а другое изображение повреждено.

Он не работает в Firefox, однако кто-то сказал мне, что он работает в Opera.

Идеи, пожалуйста:)


Редактировать : def.php выводит это:

<img src='https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM'><img src='http://www.google.co.uk/intl/en_uk/images/logo.gif'>

Ответы [ 5 ]

1 голос
/ 26 января 2010

Я бы порекомендовал установить FireBug , чтобы увидеть ответ сервера. Вы можете обнаружить, что DropBox отказывается обслуживать запросы изображений с рефералами из файлов, заканчивающихся определенными расширениями, например, .php.

Это может объяснить поведение дубликата и с простым HTTP.

0 голосов
/ 26 января 2010

Попробуйте "просмотреть источник" в обоих и сравните результаты.

0 голосов
/ 26 января 2010

Очевидное наблюдение, но есть ли у вашего def.php закрывающий тег php? Ваш пример кода не ...

<?php
echo '<img src="https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM">';
echo '<img src="http://www.google.co.uk/intl/en_uk/images/logo.gif">';
exit;
?>

Редактировать: Сохраненное выше как HTML-файл, и я вижу только одно изображение в Chrome ... ТАКЖЕ - У вас установлен / связан модуль PHP с вашим веб-сервером?

0 голосов
/ 26 января 2010

Попробуйте это:

<?php
echo '<img src="https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM">';
echo '<img src="http://www.google.co.uk/intl/en_uk/images/logo.gif">';
exit;

Если это работает, это потому, что атрибуты html должны быть ограничены двойными кавычками, а не одинарными кавычками. Возможно, некоторые браузеры прощают это, а некоторые нет.

0 голосов
/ 26 января 2010

Это работает на моем Firefox версии 3.6, изображение показывает отлично:

<HTML>
<HEAD>
<TITLE>My WebPage</TITLE>
</HEAD>
<BODY>

  <img src="https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM" />

</BODY>
</HTML>
...