Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: подскажите пожалуйста как скачать https страницу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
scuter
Отправлено: 29 Января, 2008 - 20:00:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




здравствуйте,
мне дали небольшую задачку,
надо скачать страницу защищённую паролем через https протокол,
суде по всему функции CURL в этом случае не работают,
для этого я чуть чуть переделал функцию,
PHP:
скопировать код в буфер обмена
  1.  
  2. function get_content($hostname, $path)
  3. {
  4.         $line = '';
  5.         $fp = fsockopen($hostname, 443, $errno, $errstr, 30);
  6.         if(!$fp) echo 'errstr'.$errstr.'<br>'."\n";
  7.         else
  8.         {
  9.                 $headers = "GET ".$path." HTTP/1.1\r\n";
  10.                 $headers .= "Host: ".$hostname."\r\n";
  11.                 $headers .= "Connection: Close\r\n\r\n";
  12.                 fwrite($fp, $headers);
  13.                 while (!feof($fp))
  14.                 {
  15.                         $line .= fgets($fp, 1024);
  16.                 }
  17.                 fclose($fp);
  18.         }
  19.         return $line;
  20. }
  21.  
  22. echo get_content('subdomain.localhost', '/ssl.php');
  23.  

конечно эта штука не работает потому что заголовки не правильные,
если кто знает протокол https подскажите хотя бы простые заголовки
на скачавание страниц и как их дешифровать.
(Добавление)
чисто для прикола,
я запихнул спецификацию RFC 2660 - The Secure HyperText Transfer Protocol
в переводчик,
перевод,
Цитата:

2. Формат Сообщения ................................ ................ 7
2.1. Письменные Соглашения ................................ ...... 8
2.2. Линия Запроса ................................ ............ 8
2.3. Линия Статуса ................................ ............. 8
2.4. Обеспечить Линии Удара головой HTTP ................................ .... 8
2.5. ................................ .....................12 содержание
2.6. Варианты Формата Герметизации ................................ 13

2.6.1. Довольная область секретности: CMS ............................... 13
2.6.2. Довольная область секретности: МОХ .............................. 14
2.6.3. Разрешенный удары головой HTTP ................................ .... 14
2.6.3.2. ................................ ....................15 хозяин
2.6.3.3. ................................ ..............15 связь
3. Шифровальные Параметры ................................ ...... 15
3.1. ................................ .............15 Вариантов Удары головой
3.2. ................................ .........16 Варианты Переговоров
3.2.1. Краткий обзор Переговоров ................................ ...... 16
3.2.2. Формат Выбора Переговоров ................................ . 16
3.2.3. Параметризация для Шифров Ключа Переменной длины ........... 18
3.2.4. ................................ ........18 Синтаксис Переговоров
3.3. Удары головой Непереговоров ................................ ..... 23
3.3.1. ................................ .......23 идентичность шифрования
3.3.2. ................................ ..........23 информация свидетельства

(Отредактировано автором: 29 Января, 2008 - 20:07:52)

 
 Top
valenok Модератор
Отправлено: 29 Января, 2008 - 20:26:43
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Извините но я не понял почему curl вам не подошёл..
CURLOPT_SSL_VERIFYPEER выставьте в false

PHP:
скопировать код в буфер обмена
  1.  
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);
  4. curl_setopt($ch, CURLOPT_URL,"https://money.yandex.ru/");
  5. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  6. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  7. curl_exec ($ch);
  8. curl_close ($ch);
  9.  

(Добавление)
Забавное содержание документации получилось =)


-----
Truly yours, Sasha.
 
My status
 Top
scuter
Отправлено: 29 Января, 2008 - 20:42:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




curl не подходит потому что нужна аутентификация,
проверить это не могу потому, что не знаю как скомпилить сurl для windows и FTP доступ на моём компе заблокирован, но поидее это возможно,
PHP:
скопировать код в буфер обмена
  1.  
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, $base_url);
  4. curl_setopt($ch, CURLOPT_USERPWD, 'login:pasword');
  5. curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
  6. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  8. $data = curl_exec($ch);
  9.  
 
 Top
valenok Модератор
Отправлено: 29 Января, 2008 - 20:46:16
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Если php вы устанавливали сами - должны бы знать.
Если у вас какойто комплект - замените его денвером или топ серверс. Там точно всё есть.

Сразу на хостинге и проверяйте.

Цитата:
curl не подходит потому что нужна аутентификация

Отсюда по подробней. Что это такое file_get_contents умеет, чего curl нет с веб протоколами?
И что за аутентификация ? Как вы её производили без кюрла ?


-----
Truly yours, Sasha.
 
My status
 Top
scuter
Отправлено: 29 Января, 2008 - 21:03:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Цитата:
Если php вы устанавливали сами - должны бы знать.

конечно ставил но windows, там ничего компилить не надо,
а вот на денвере этого нет, проверял,
Цитата:
Что это такое file_get_contents умеет, чего curl нет с веб протоколами?
И что за аутентификация ? Как вы её производили без кюрла ?

1)на счёт аутентификации это мне не известно(какая она),скорее всего не https,
2)file_get_contents выдаёт ошибку при зкачивании,
3)аутентификация работает через броузер, а люди хотят через php

(Отредактировано автором: 29 Января, 2008 - 21:04:11)

 
 Top
valenok Модератор
Отправлено: 29 Января, 2008 - 21:48:10
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Цитата:
2) file_get_contents выдаёт ошибку при зкачивании

А где ошибка ? И что такое скачивание ?
Код который я вам дал с curl выводит на экран страницу запрашиваемую по протоколу https
Если вам ещё к этому нужна авторизация - без кюрла я вообще не знаю как.

--

Помоему в денвере нужно просто включить расширение в php.ini


-----
Truly yours, Sasha.
 
My status
 Top
scuter
Отправлено: 29 Января, 2008 - 22:30:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Цитата:
А где ошибка ? И что такое скачивание ?

выдаёт
Warning: file_get_contents(https://cp.masterhost.ru) [function.file-get-contents]: failed to open stream: Invalid argument in Z:\home\test1.ru\www\protect.php on line 41
Цитата:
Помоему в денвере нужно просто включить расширение в php.ini

спасибо теперь найду решение(на денвере просто библиотеки небыло изначально).
 
 Top
scuter
Отправлено: 30 Января, 2008 - 19:26:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




хххх,
страница скачалась,
оказалось что в ней 3 фрейма,
страница ещё в добавок сжата через gzip
подскажите как передать через CURL переменные методом GET,
вот такая штука не работает
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Content-Encoding: gzip");
  3. $ch = curl_init();
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);
  5. curl_setopt($ch, CURLOPT_URL, 'localhost/peper?page=1&start=218');
  6. curl_setopt($ch, CURLOPT_USERPWD, 'login:pass');
  7. curl_setopt($ch, CURLOPT_HEADER, 0);
  8. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  9. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  10. $data = curl_exec($ch);
  11. print $data;
  12.  

звените нашёл косяк,
надо было с начало https написать. https://localhost/peper?page=1&start=218

(Отредактировано автором: 30 Января, 2008 - 19:48:02)

 
 Top
valenok Модератор
Отправлено: 30 Января, 2008 - 20:05:54
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Сейчас ваша проблема решена?


-----
Truly yours, Sasha.
 
My status
 Top
scuter
Отправлено: 31 Января, 2008 - 02:24:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




почти,
функции сжатия Zlib не работают,
скажите если страница сжата(Content-Encoding: gzip),
функция gzuncompress() всё расшифрует,
если я кого то достал, прошу прощение,
этот вопрос последний.
 
 Top
valenok Модератор
Отправлено: 31 Января, 2008 - 17:33:49
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Если вы когото достали, этого его проблемы.
Форум тут для вас.
В таких вопросах лучше попробывать эту функцию и сразу всё станет ясно.


-----
Truly yours, Sasha.
 
My status
 Top
scuter
Отправлено: 07 Февраля, 2008 - 18:54:34
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




хм, да попробовал не работает,
Warning: gzuncompress() [function.gzuncompress]: data error in Z:\home\test1.ru\www\test.php
интересно как всё таки расшифровать этот gzip?
 
 Top
valenok Модератор
Отправлено: 07 Февраля, 2008 - 19:27:06
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




А gzdecode ?
А вы уверенны что данные сжаты?


-----
Truly yours, Sasha.
 
My status
 Top
scuter
Отправлено: 07 Февраля, 2008 - 23:38:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




да уверен если поставить

то страница выводится если не ставить выводит каракули.
(Добавление)
функция gzdecode как то не срабатывает,
Fatal error: Call to undefined function gzdecode(),
сервер там стоит
Microsoft-IIS/6.0
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB