Прозрачная отдача файла юзеру. Как? - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.7196
BTC/USD61918.2778
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 26.12.2011, 22:07   #1
krob
Senior Member
 
Аватар для krob
 
Регистрация: 29.04.2011
Сообщений: 379
Бабло: $111700
По умолчанию Прозрачная отдача файла юзеру. Как?

Есть сервак, на котором лежит файло, однако, отдается оно только при условии определенного UA и куксов, которые заведомо известны.

Как сделать прослойку на своем серваке, чтобы наиболее просто и легко отдавать юзеру файлы?

п.с. пхп
krob вне форума  
Старый 26.12.2011, 22:17   #2
oso
кодер
 
Аватар для oso
 
Регистрация: 21.01.2008
Сообщений: 315
Бабло: $69585
По умолчанию

Проверить куки и ua через if можно, файл прочитать с помощью
http://php.net/manual/en/function.readfile.php
__________________
php скрипты от $25 Отзывы: 2013-2011, 2010, 2009. acя: 384 846 ноль два шесть
oso вне форума  
Старый 27.12.2011, 00:27   #3
krob
Senior Member
 
Аватар для krob
 
Регистрация: 29.04.2011
Сообщений: 379
Бабло: $111700
ТС -->
автор темы ТС По умолчанию

имеем:
чужой сервер ( отдающий файлы только! если useragent="а" и кукис="б") - FileServ
мой сервер - MyServ
конечно пользователь - User

надо:
разработать прокладку/прослойку на пхп
- располагающуюся на MyServ, которая будет обращаться к FileServ с ua=a и кукисом=б FileServ отдаст файл, и вот ключевой момент! этот файл должен отдаться звену User НЕ! закачиваясь на мой сервер

вопрос: как?
krob вне форума  
Старый 27.12.2011, 00:38   #4
xatman
Особый статус
 
Аватар для xatman
 
Регистрация: 05.10.2007
Сообщений: 771
Бабло: $163646
По умолчанию

curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");


curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');

Примеры кодов уже есть в этом разделе.
__________________
EvaPharmacy - лучшая фарма партнерка (ICQ: 750000 Jabber: [email protected]) / Помощь детям.
xatman вне форума  
Старый 27.12.2011, 00:46   #5
krob
Senior Member
 
Аватар для krob
 
Регистрация: 29.04.2011
Сообщений: 379
Бабло: $111700
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от xatman Посмотреть сообщение
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");


curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');

Примеры кодов уже есть в этом разделе.
так то это понятно, что в курл подставляем нужный юзерагент и кукис и выкачиваем файл, НО! вопрос в том чтобы файл не ложился на мой сервер, а сразу отдавался пользователю "на лету".
krob вне форума  
Старый 27.12.2011, 00:49   #6
oso
кодер
 
Аватар для oso
 
Регистрация: 21.01.2008
Сообщений: 315
Бабло: $69585
По умолчанию

CURLOPT_RETURNTRANSFER
TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.

curl_setopt($ch, CURLOPT_RETURNTRANSFER , 0);
__________________
php скрипты от $25 Отзывы: 2013-2011, 2010, 2009. acя: 384 846 ноль два шесть
oso вне форума  
Старый 27.12.2011, 01:05   #7
krob
Senior Member
 
Аватар для krob
 
Регистрация: 29.04.2011
Сообщений: 379
Бабло: $111700
ТС -->
автор темы ТС По умолчанию

еще раз упрощенная схема, может я перекрутил слишком выше

чужой сервер - мой сервер - конечный юзер
чужой сервер отдает только если кука='a', ua = 'b'
krob вне форума  
Старый 27.12.2011, 01:23   #8
oso
кодер
 
Аватар для oso
 
Регистрация: 21.01.2008
Сообщений: 315
Бабло: $69585
По умолчанию

Код:
<?php
$ch = curl_init('http://www.google.com');
curl_setopt($ch, CURLOPT_COOKIE, '');
curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
curl_exec($ch);
curl_close ($ch);
откроется гугл с заданными куками и юзерагентом, с выводом прямиком в браузер
__________________
php скрипты от $25 Отзывы: 2013-2011, 2010, 2009. acя: 384 846 ноль два шесть
oso вне форума  
Старый 27.12.2011, 09:09   #9
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
По умолчанию

возможно нужно еще перед отдачей файла отдать хедер, чтобы файл не на экран вывалился, а браузер его предлагал сохранить как файл.
смотри php функцию header - ее надо запустить перед curl_exec
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума