Добрый день или вечер). Может быть не совсем прямо про PHP вопрос, но думаю тут спецов хватает да и вопрос косвенно связан с PHP. Дело вот в чем: мой сайт на HTTPS ( SSL сертификат ) пытаюсь перевести по крайней мере. вроде все перевел ( все ссылки линкуются через HTTPS ) но на сайте есть мой "плагин" который через get_contents тырит картинки с сайта на котором нет этого самого HTTPS в итоге мой сайт будет выдавать INSECURE предупреждения. Что мне делать в данной ситуации? Как мне сделать так чтоб картинки с сайта HTTP были как будто с HTTPS?
http://dark-world.ru/scripts/resize/?z=200&file=/files/covers/1669/166931.jpg я вставил сюда вот эту картинку, когда вставлял, в браузере появился значок insecure, но как только добавил, движок форума какую то либо proxy к ней пришвартовал и ок. Значит получается есть какой то способ веселый --- Добавлено --- как мне такое же решение сделать на своем сайте? Т.е движок этого форума оборачивает ее как то и все ок, сайт не выдает INSECURE. Хотя картинка грузится по сути с HTTP.
@ND этот скрипт качает сами картинки и кэширует на php.ru --- Добавлено --- у неё url proxy.php?image=http%3A%2F%2Fdark-world.ru%2Fscripts%2Fresize%2F%3Fz%3D200%26file%3D%2Ffiles%2Fcovers%2F1669%2F166931.jpg&hash=c57c86c61715c9f5349bdde3f14854e7
хм мне кажется он не качает картинки, а делает примерно так же как тут: http://stackoverflow.com/questions/765779/how-to-display-non-ssl-images-on-https-connection в итоге я воспользовался кодом со 2 поста, все работает вроде) картинки теперь с моего сайта выдаются как https'совые без сохранения их у себя, вроде ок, правда не знаю на много ли нагрузка от такого скрипта возрастет.
@ND это решение 1000 раз скачает картинку для 1000 пользователей, вместо того чтобы скачать 1 раз. Любое подобное решение не оптимально.
@[vs] что значит скачать 1000 раз? Ну в любом случае же для 1000 пользователей будет 1000 раз скачиваться, только вопрос откуда: из своего сервера либо из удаленного? ( как в данном случае ) я немного нуб ( я по фронт энду больше ), может ересь несу. Но как она может 1 раз скачиваться для 1000 пользователей?
Суть не в пользователе. Суть в сервере. Для пользователя всё равно откуда качать. А серверу проще 1 раз скачать, чем 1000.
ясено спасибо, суть понял, в любом случае делей будет меньше если отдавать со своего сервера минуя "лишние" внешние запросы., т.е я так понимаю file_get_contents в любом случае обращается скачивает во "временное хранилище" каждый раз, поэтому лучше самому создать "хранилище" с этими картинками и сразу отдавать со своего сервера. меня вот такой момент еще интересует интересует (хотелось бы разобраться с заголовками ): PHP: $strFile = base64_decode(@$_GET['url']); $strFileExt = end(explode('.' , $strFile)); if($strFileExt == 'jpg' or $strFileExt == 'jpeg'){ header('Content-Type: image/jpeg'); }elseif($strFileExt == 'png'){ header('Content-Type: image/png'); }elseif($strFileExt == 'gif'){ header('Content-Type: image/gif'); }else{ die('not supported'); } if($strFile != ''){ $cache_expire = 60*60*24*365; header("Pragma: public"); header("Cache-Control: maxage=". $cache_expire); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $cache_expire).' GMT'); //... [and get the content using curl or file_get_contents and echo it out ] $myimg=file_get_contents($strFile); echo ($myimg); } exit; зачем тут вообще эти заголовки добавляются? вроде этого: header('Content-Type: image/jpeg'); я пробовал менять его вообще на левый: header('Content-Type: application/zip'); и все работает, в чем их смысловая нагрузка?
ребят вопрос в силе) Помогите пожалуйста разобраться, есть ли смысл заголовков в этом коде ? Почему и без них работает? Зачем они тут тогда? ( чисто для себя понять )
@ND работает по той причине что протокол декларирует, но не обязывает. Соблюдение протокола гарантирует корректную работу. Нарушение протокола не означает, что в конкретной ситуации что то перестанет работать.