php - curl и source

0

Почему я получаю пустой источник? Когда я разорву

//curl_setopt($ch, CURLOPT_URL, 'www.onet.pl'); 

и совершать

'Accept-Encoding: gzip,deflate,sdch',

все работает отлично для www.onet.pl. Почему это не работает на www.ebok.pl(?

<?php

    $COOKIEFILE = $_SERVER['DOCUMENT_ROOT'] . '/../data/config/ebok.txt';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $COOKIEFILE);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $COOKIEFILE);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, 0);  

    curl_setopt($ch,CURLOPT_HTTPHEADER, array('Content-type: application/x-www-form-urlencoded', 
                                              'Accept: text/html,application/xhtml+xml,application/xml', 
                                              'Accept-Encoding: gzip,deflate,sdch', 
                                              'Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4',                                              
                                              'Connection: keep-alive',
                                              'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36')
                                              );
    //curl_setopt($ch, CURLOPT_URL, 'http://www.ebok.pl');        
    curl_setopt($ch, CURLOPT_URL, 'https://ssl.plusgsm.pl/ebok-web/');        
    //curl_setopt($ch, CURLOPT_URL, 'www.onet.pl');        
    echo curl_exec($ch);


?>    

Мне нужно войти на эту страницу.

  • 0
    вы пробовали curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  • 0
    Я пытался с curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true); но то же самое, отмечая ...
Показать ещё 4 комментария
Теги:
curl

1 ответ

0

Если что-то не работает правильно, почти всегда есть способ выяснить, почему. В curl случае curl_error расскажет вам.

Если я изменю вашу строку curl_exec вместо этого скажу

$result = curl_exec($ch);
if ($result === false) die(curl_error($ch));

Я получаю это:

[cHao@hydra-vm ~]$ php curl.php
error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac%

Похоже, что это имеет какое-то отношение к серверу, который делает неверное обращение SSL/TLS неправильно, но я не знаю достаточно о завитке или SSL, чтобы сказать наверняка.

Причина № 15 всегда проверять результат от функций, которые могут возвращать ошибки.

В любом случае, если я использую версию SSL для TLS v1.0, например:

curl_setopt($ch, CURLOPT_SSLVERSION, 4);

то это работает для меня. Общий TLSv1 выходит из строя с той же ошибкой, что и выше, версии выше 1.0 дают мне ошибку о "неподдерживаемом протоколе", SSLv3 говорит "отказ от сбоев при сбое", а SSLv2 просто не поддерживается на моей машине.

  • 0
    Да, это ошибка OpenSSL. Должна быть версия 1.0.1h или выше. Найдите его здесь: serverphorums.com/read.php?5,924339

Ещё вопросы

Сообщество Overcoder
Наверх
Меню