2014-11-19 2 views
0

Почему я получаю пустой источник? Когда я uncommitphp - curl и источник

//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 ($ ч, CURLOPT_FOLLOWLOCATION, правда),' –

+0

Я попытался с curl_setopt ($ ч, CURLOPT_FOLLOWLOCATION, правда); но то же самое, нозначение ... – user3345547

+0

set return transfer to 1 и посмотреть, что вы получаете –

ответ

0

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

Если я изменить curl_exec строку вместо сказать

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

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

[[email protected] ~]$ php curl.php 
error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac% 

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

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

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

curl_setopt($ch, CURLOPT_SSLVERSION, 4); 

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

+0

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