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
Форумы портала PHP.SU :: Версия для печати :: подскажите пожалуйста как скачать https страницу
Форумы портала PHP.SU » PHP » Программирование на PHP » подскажите пожалуйста как скачать https страницу

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

1. scuter - 29 Января, 2008 - 20:00:56 - перейти к сообщению
здравствуйте,
мне дали небольшую задачку,
надо скачать страницу защищённую паролем через 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 информация свидетельства
2. valenok - 29 Января, 2008 - 20:26:43 - перейти к сообщению
Извините но я не понял почему 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.  

(Добавление)
Забавное содержание документации получилось =)
3. scuter - 29 Января, 2008 - 20:42:33 - перейти к сообщению
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.  
4. valenok - 29 Января, 2008 - 20:46:16 - перейти к сообщению
Если php вы устанавливали сами - должны бы знать.
Если у вас какойто комплект - замените его денвером или топ серверс. Там точно всё есть.

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

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

Отсюда по подробней. Что это такое file_get_contents умеет, чего curl нет с веб протоколами?
И что за аутентификация ? Как вы её производили без кюрла ?
5. scuter - 29 Января, 2008 - 21:03:12 - перейти к сообщению
Цитата:
Если php вы устанавливали сами - должны бы знать.

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

1)на счёт аутентификации это мне не известно(какая она),скорее всего не https,
2)file_get_contents выдаёт ошибку при зкачивании,
3)аутентификация работает через броузер, а люди хотят через php
6. valenok - 29 Января, 2008 - 21:48:10 - перейти к сообщению
Цитата:
2) file_get_contents выдаёт ошибку при зкачивании

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

--

Помоему в денвере нужно просто включить расширение в php.ini
7. scuter - 29 Января, 2008 - 22:30:14 - перейти к сообщению
Цитата:
А где ошибка ? И что такое скачивание ?

выдаёт
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

спасибо теперь найду решение(на денвере просто библиотеки небыло изначально).
8. scuter - 30 Января, 2008 - 19:26:53 - перейти к сообщению
хххх,
страница скачалась,
оказалось что в ней 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
9. valenok - 30 Января, 2008 - 20:05:54 - перейти к сообщению
Сейчас ваша проблема решена?
10. scuter - 31 Января, 2008 - 02:24:09 - перейти к сообщению
почти,
функции сжатия Zlib не работают,
скажите если страница сжата(Content-Encoding: gzip),
функция gzuncompress() всё расшифрует,
если я кого то достал, прошу прощение,
этот вопрос последний.
11. valenok - 31 Января, 2008 - 17:33:49 - перейти к сообщению
Если вы когото достали, этого его проблемы.
Форум тут для вас.
В таких вопросах лучше попробывать эту функцию и сразу всё станет ясно.
12. scuter - 07 Февраля, 2008 - 18:54:34 - перейти к сообщению
хм, да попробовал не работает,
Warning: gzuncompress() [function.gzuncompress]: data error in Z:\home\test1.ru\www\test.php
интересно как всё таки расшифровать этот gzip?
13. valenok - 07 Февраля, 2008 - 19:27:06 - перейти к сообщению
А gzdecode ?
А вы уверенны что данные сжаты?
14. scuter - 07 Февраля, 2008 - 23:38:02 - перейти к сообщению
да уверен если поставить

то страница выводится если не ставить выводит каракули.
(Добавление)
функция gzdecode как то не срабатывает,
Fatal error: Call to undefined function gzdecode(),
сервер там стоит
Microsoft-IIS/6.0

 

Powered by ExBB FM 1.0 RC1