Денис Н.
98 повідомлень
#16 років тому
Доброго времени суток.
Возникла проблема, которую я не могу разрешить. Возможно кто-нибудь поможет?

Поставил Curl, phpinfo говорит что есть такой. Curl отлично открывает http странички.
А на https выдаёт пустой экран.

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://www.ya.ru/");
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);



$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "https://www.zloy.org/");
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);


отлично выводит яндекс, а вот злой - пустой экран =(

После курения доков выяснил что стоит добавить данную строку
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // this line makes it work under https

Но она к сожалению не помогает.
Павел Н.
159 повідомлень
#16 років тому
Curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // this line makes it work under https
а если поставить TRUE на место False
Денис Н.
98 повідомлень
#16 років тому
Нет, TRUE тоже не помогает. - белый экран =(
Никита Б.
67 повідомлень
#16 років тому
Попробуйте добавить строку:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
Денис Н.
98 повідомлень
#16 років тому
К сожалению, не помогает =( Ещё варианты?
Вадим Т.
3240 повідомлень
#16 років тому
DenTal, легко мог бы помочь, но лень разбираться что Вы не так делаете в своем коде... 20 WMZ за консультацию по решению данной задачи сможете заплатить? тогда - помогу.
 А.
5 повідомлень
#16 років тому
1) Белый экран это не о чем не говорит, надо включить ошибки или смотреть логи
2) tvv, no comments...
3) А вообще воровать конетен нехорошо, это вам скажут на многих форумах.
Денис Н.
98 повідомлень
#16 років тому
Может быть я не понимаю, но где вы видите кражу контента? И что по вашему те, кто придумали функции fopen и curl намерено сделали их для кражи контента?

Мне просто нужно открыть страничку по https по средствам php. Неужели это уже кража контента? В коде я не вижу какого-либо нарушения авторских, или ещё каких нибудь прав.

error_reporting = E_ALL - и так стоит.
фаервол вроде пропускает траф.
в логах только Thu Oct 18 17:55:38 2007] File does not exist: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/favicon.ico, referer: http://localhost/
Но я не думаю что отсутсвие иконки для странички может навредить работе.

tvv, при всём уважении к Вам. Весь код у Вас на глазах.
Не верю что, человек с вашим опытом не может разобраться в 5ти строчках.

Честно говоря, когда я обновил страничку форума и увидел Ваш ник в графе последнего ответа, я был на 100% уверен что увижу совет со стороны специалиста. (без посылания докуривать доки)
Гость
22 повідомлення
#16 років тому
Цитата:
Не верю что, человек с вашим опытом не может разобраться в 5ти строчках.

мочь и хотеть - разные вещи.
Вадим Т.
3240 повідомлень
#16 років тому
DenTal, а что, разве я что-то не так написал? дал непрофессиональный ответ на вопрос? я готов помочь, без проблем. но это займет не 5 минут. поэтому попросил компенсации времени, которое будет потрачено. или это неприемлемо, и Вам нужна бесплатная помощь?
Вадим Т.
3240 повідомлень
#16 років тому
Решение - есть. Только что написал код, даже проверил его, который работет со . Могу поделиться...
От того кода, что у DenTal, отличается одной строкой...

Просто, если честно, уже устал объяснять новичкам примитивные вещи, не усваивают... В документации по CURL же это прекрасно описано. Поэтому я и решил не делать этого бесплатно, может быть хоть это заставит кого-то задуматься и прочитать мануал, перед тем как такие темы на форуме создавать.
Вадим Т.
3240 повідомлень
#16 років тому
php_now, ответ неверный, CURLOPT_SSL_VERIFYHOST = 2 и так стоит по умолчанию. но истина очень близко.

Цитата ("DenTal"):
Честно говоря, когда я обновил страничку форума и увидел Ваш ник в графе последнего ответа, я был на 100% уверен что увижу совет со стороны специалиста. (без посылания докуривать доки)

А чем не нравится ответ докуривать доки? конечно же я могу рассказать решение, но пользы от этого не будет ни Вам (в общем плане), ни мне.

Вот только что я начал свой рабочий день, и подумал, что бы такого сделать для всемирного фриланса хорошего... Зашел на форум, увидел Ваш пост, подумал - наверное стоит помочь программисту, как обыно. Но задумался, а правильно ли я поступаю... Пока еще не решил. Наверное, лучше если Вы сами найдете ответ на вопрос. Или я глобально ошибаюсь?
Вадим Т.
3240 повідомлень
#16 років тому
Ладно, прошу прощения за занудство.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.zloy.org/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_exec($ch);
curl_close($ch);


(При этом решении теряется возможность проверять валидность сертификата, впрочем для ресурсов типа zloy.org это некритично, так как там все равно используется самоподписанный сертификат "Я, Василий Пупкин, подтверждаю, что я - именно Василий Пупкин".
Алексей П.
3 повідомлення
#16 років тому
DenTal, включаете CURLOPT_VERBOSE и смотрите что происходит.
Цитата:

* About to connect() to port 443
* Trying 80.86.81.33... * connected
* Connected to (80.86.81.33) port 443
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
* Closing connection #0

Как уже ответити, отключение CURLOPT_SSL_VERIFYHOST поможет.
Мансур И.
15 повідомлень
#16 років тому
Для интереса решил испытать..

вариант tvv все равно выдал пустой экран, как и без CURLOPT_VERBOSE так и с ним
Вадим Т.
3240 повідомлень
#16 років тому
d_mak, я только что еще раз проверил - работает. Видимо, у Вас не установлена какая-либо либа. Проверьте, установлен ли CURL extension, и поддердивается ли HTTPS. Далее, проверьте как Вы выходите в интернет, возможно, Вы заходите через прокси. Тогда в CURL нужно будет выставить соответствующие опции. Потом запустите это, для теста можете с консоли:

<?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.zloy.org/";
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_exec($ch);
curl_close($ch);
?>
Андрей Л.
457 повідомлень
#16 років тому
tvv, зря отошли от своей позиции.

Скоро сюда будут задания с проектов скидывать..

Тем более ответ можно найти в интеренте. В тех же документациях - php.net
Андрей Щ.
190 повідомлень
#16 років тому
Да зря, незря... Если человеку невлом ответить - пусть отвечает. Если влом - пусть не отвечает. Может он от ответа получает много положительных эмоций (а по ходу так и есть), и ему ответ окупается сторицей, он потом на плюсовом настрое работает дальше. Скажем так - если бы его реально ломало ответить - он бы даже не набил свое количество постов. Просто человек пытается сделать хорошо не только себе, но еще и вопрошавшему, дда не просто подарить ему рыбы, а и научить рыбачить... Круто конечно, но лично для себя я вопрос давно решил. Хотя в состоянии перерешить лет через 10-20.

А докуривать доки - это да. На том же пхп.нет валяется массированное количество вдумчивых комментов (правда на инглише, некоторых это смущает). Но поймите, не каждый человек способен взглянуть абстрактно на свою проблему, присмотреться к чужой, найти общие черты и решить свою. Ну не может он! И потому лезет на форум с вопросом. И совет "докурить" не поможет, человек чисто физически в силу особенностей восприятия информации и ее анализа не может "докурить". И тут ИМХО стоит решать - потяге тебе ответить, получишь ли от этого удовольствие, или ломает. Короче, подходить эгоистически. Самый верный подход.

Надеюсь, мой пост натолкнет Вас, Вадим, на решение вопроса "быть или не быть" и немного вскроет подоплеку "почему блин лезут". Если конечно сами не дошли до этого