|
|
|
| скажите правильно ли будет так отправить куки с помощью fopen()?
<? //$opts ?>
Array
(
[http] => Array
(
[method] => GET
[header] => Accept-language: en
Referer: http://google.com/
Cookie: visitSourceUrl=http%253A%252F%252Fgoogle.com%252F; lang=en; role=premium; PHPSESSID=uvcjr8f2lnqnfd701v95p0bjp7; rememberMe=1; email=b1521696%2540klzlk.com; nickname=fs_grab; isAffiliate=deleted
)
)
|
<?
fopen($filepath, 'rb', false, stream_context_create($opts));
|
| |
|
|
|
|
|
|
|
для: sl1p
(30.05.2011 в 05:04)
| | эх:(
сижу просто мозг рвется на куски:))
почемуто сервер не кушает эти данные.. и грубо меня посылает=( | |
|
|
|
|
|
|
|
для: sl1p
(30.05.2011 в 05:04)
| | Вероятно да, а такая cookie реально устанавливалась? Т.е. ей соответствует живая сессия на сервере? | |
|
|
|
|
|
|
|
для: cheops
(30.05.2011 в 11:49)
| | да=( если те же самые куки отправлять через курл заголовком всё ок(
а таким образом почемуто не работает... почему?:(
очень необходимо открыть страницу в режиме 'rb' но без куки будет не то что надо( | |
|
|
|
|
|
|
|
для: sl1p
(30.05.2011 в 14:13)
| | Попробуйте еще пользовательский агент переопределить, очень часто fopen() подставляет в качестве пользовательского агента что-то вроде PHP 5.3. Лучше вообще сначала обратиться при помощи fopen() к своему скрипту-ловушке и посмотреть, какие передаются HTTP-заголовки. Тоже самое сделать при помощи CURL - возможно что-то еще обнаружите. | |
|
|
|
|
|
|
|
для: cheops
(30.05.2011 в 14:23)
| | с юзер агентом пробовал.. даже сделал всё максимально похожим на запросы одним и тем же клиентом, юзер агент тот который юзался курлом при логировании(выдирании кук) мало ли там сид генерится с учетом этого..
а каким образом просмотреть заголовки от fopen()?
пробовал
$fd = fopen(...);
print_r(stream_get_meta_data($fd));
но в заголовках пусто.. хотя сам контент приходит( не тот что надо правда)
.........
такую штуку посылает курл при обращении к урлу.
GET /download/1040388521/4de37e59/3e0311a9/b3a0e3/2/4dde8417/0/3961458f5b205ac6bacd934200411451200 c16c6 HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; Maxthon)
Host: s182.filesonic.com
Accept: */*
Referer: http://google.com/
Cookie: visitSourceUrl=http%3A%2F%2Fgoogle.com%2F; lang=en; role=premium; PHPSESSID=s01dso4tvfsotbdlpf6j619n03; rememberMe=1; email=b1521696%40klzlk.com; nickname=fs_grab; isAffiliate=deleted
| ну и собственно получает то что надо(файл)
а от fopen приходит лишь кастомная ошибка о том что в ссылке файла не правильный хеш(собственно не установлены куки с сессией) | |
|
|
|
|
|
|
|
для: sl1p
(30.05.2011 в 15:27)
| | >а каким образом просмотреть заголовки от fopen()?
Обратиться к своему скрипту, который прочитает их и выдаст обратно в ответе. | |
|
|
|
|
|
|
|
для: cheops
(30.05.2011 в 17:00)
| | ну дык я так и делаю какбе)
призодит только body ответа.. а получить заголовки способом которым я указал выше почемуто не получается. | |
|
|
|
|
|
|
|
для: sl1p
(30.05.2011 в 19:22)
| | оказалось что в пхп 5.2.* баг с этим делом, стрим не отправляет заголовков и если не прочитать хотябы один байт ответа то и не возвращает заголовков от ресурса.
чтобы отправить - заглушка которую нужно юзнуть перед конектом к ресурсу.
<?
if(version_compare(PHP_VERSION, '5.3.0') == -1){
ini_set('user_agent', 'PHP-SOAP/' . PHP_VERSION . "\r\n" . $headers);
}
// где $headers собственно строка с заголовками
|
возможно комуто будет полезно | |
|
|
|