Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: proxy curl
 
 автор: *m*   (22.04.2010 в 16:05)   письмо автору
 
 

Всем привет!
Не работает прокси, выводит чистую сраницу.

   $proxy_address = "212.170.197.122";
   $proxy_port = "8080";
   $r = curl_init('http://www.ya.ru');
   curl_setopt($r, CURLOPT_NOPROGRESS, 0);
   curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($r, CURLOPT_URL, $url);
   curl_setopt($r, CURLOPT_PROXY, "$proxy_address:$proxy_port");
   $res = curl_exec($r);
   return $res; 


а так работает:


   $proxy_address = "212.170.197.122";
   $proxy_port = "8080";
   $r = curl_init('http://www.ya.ru');
   curl_setopt($r, CURLOPT_NOPROGRESS, 0);
   curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
   //curl_setopt($r, CURLOPT_URL, $url);
   //curl_setopt($r, CURLOPT_PROXY, "$proxy_address:$proxy_port");
   $res = curl_exec($r);
   return $res; 

  Ответить  
 
 автор: Trianon   (22.04.2010 в 16:09)   письмо автору
 
   для: *m*   (22.04.2010 в 16:05)
 

как насчет включить диагностику ошибок error_reporting(E_ALL|E_NOTICE); ?
Желательно перед тем, как...

  Ответить  
 
 автор: *m*   (22.04.2010 в 18:09)   письмо автору
 
   для: Trianon   (22.04.2010 в 16:09)
 

А действительно, была не определена переменная $url в строке
curl_setopt($r, CURLOPT_URL, $url);


сделал так:

error_reporting(E_ALL|E_NOTICE);
$url="http://www.ya.ru"; 
$proxy_address = "212.170.197.122";
   $proxy_port = "8080";
   $r = curl_init();
   curl_setopt($r, CURLOPT_NOPROGRESS, 0);
   curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($r, CURLOPT_URL, $url);
   curl_setopt($r, CURLOPT_PROXY, "$proxy_address:$proxy_port");
   $res = curl_exec($r);
   return $res;


все равно чистый лист..

  Ответить  
 
 автор: Тень*   (22.04.2010 в 18:59)   письмо автору
 
   для: *m*   (22.04.2010 в 18:09)
 

Можно предположить, то тебе надо return на echo заменить.

  Ответить  
 
 автор: *m*   (22.04.2010 в 19:22)   письмо автору
 
   для: Тень*   (22.04.2010 в 18:59)
 

тот же чистый лист..
$return это от функции оталось, вывожу то я printo'м..

  Ответить  
 
 автор: Trianon   (22.04.2010 в 22:31)   письмо автору
 
   для: *m*   (22.04.2010 в 19:22)
 

сервер, очевидно, редиректом отвечает.
А у Вас заголовок в выходной поток не включен.
Вот и выходит пустой отклик.

  Ответить  
 
 автор: *m*   (22.04.2010 в 22:36)   письмо автору
 
   для: Trianon   (22.04.2010 в 22:31)
 

поставил

error_reporting(E_ALL|E_NOTICE);
$url='http://www.ya.ru'; 
$proxy_address = "212.170.197.122";
   $proxy_port = "8080";
   $r = curl_init();
   curl_setopt($r, CURLOPT_HEADER, 0);
   curl_setopt($r, CURLOPT_NOPROGRESS, 0);
   curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($r, CURLOPT_URL, $url);
   curl_setopt($r, CURLOPT_PROXY, "$proxy_address:$proxy_port");
   $res = curl_exec($r);
   curl_close($r);
   echo $res; 


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

  Ответить  
 
 автор: Тень*   (22.04.2010 в 23:01)   письмо автору
 
   для: *m*   (22.04.2010 в 22:36)
 

> curl_setopt($r, CURLOPT_HEADER, 0);
Наоборот

  Ответить  
 
 автор: *m*   (22.04.2010 в 23:37)   письмо автору
 
   для: Тень*   (22.04.2010 в 23:01)
 

так?

error_reporting(E_ALL|E_NOTICE);
$url='http://www.ya.ru'; 
$proxy_address = "212.170.197.122";
   $proxy_port = "8080";
   $r = curl_init();
   curl_setopt($r, CURLOPT_NOPROGRESS, 0);
   curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($r, CURLOPT_URL, $url);
   curl_setopt($r, CURLOPT_PROXY, "$proxy_address:$proxy_port");
   curl_setopt($r, CURLOPT_HEADER, 0);
   $res = curl_exec($r);
   curl_close($r);
   echo $res; 


все по прежнему.. а у вас работает?
я пробовал и другие страницы прогрузить, со своего хостинга, все так же.. пустой лист.

  Ответить  
 
 автор: Тень*   (23.04.2010 в 00:10)   письмо автору
 
   для: *m*   (22.04.2010 в 23:37)
 

"Наоборот" -- это значит поставить "1" вместо "0"....

  Ответить  
 
 автор: Trianon   (23.04.2010 в 00:34)   письмо автору
 
   для: *m*   (22.04.2010 в 23:37)
 

И перед этим, весьма желательно понять, что же эта единица означает?
Ей-богу, это не так сложно, как кажется. Уж коль скоро Вы разыскали эту строку сами.

  Ответить  
 
 автор: *m*   (23.04.2010 в 11:04)   письмо автору
 
   для: Trianon   (23.04.2010 в 00:34)
 

Дело в том, что я на одном сайте нашел описание, что это строка в нулевом значении как раз таки служит для вывода заголовков http://htmlweb.ru/php/php_curl.php..

И уже позже, на других нашел более точное объяснение.

Но дело в том что на момент написания предидущего ответа я пробовал и ноль и еденицу, результат тот же.. Отключил
 curl_setopt($r, CURLOPT_PROXY, "$proxy_address:$proxy_port");
все работает, выводит заголовки, включаю, опять белый лист.

А заголовки в любом случае должны выводиться?

  Ответить  
 
 автор: Trianon   (23.04.2010 в 11:27)   письмо автору
 
   для: *m*   (23.04.2010 в 11:04)
 

>Дело в том, что я на одном сайте нашел описание, что это строка в нулевом значении как раз таки служит для вывода заголовков http://htmlweb.ru/php/php_curl.php..


И Вас, конечно же, не затруднит процитировать фрагмент из этого описания, где такое сказано?

>И уже позже, на других нашел более точное объяснение.

Вообще-то канонический источник информации php.net/имя_функции
То есть php.net/curl_setopt


>Но дело в том что на момент написания предидущего ответа я пробовал и ноль и еденицу, результат тот же.. Отключил
 curl_setopt($r, CURLOPT_PROXY, "$proxy_address:$proxy_port");
все работает, выводит заголовки, включаю, опять белый лист.
>
>А заголовки в любом случае должны выводиться?

Заголовок.

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

  Ответить  
 
 автор: *m*   (23.04.2010 в 11:48)   письмо автору
 
   для: Trianon   (23.04.2010 в 11:27)
 

с сайта http://htmlweb.ru/php/php_curl.php

CURLOPT_HEADER: Установите эту опцию в ненулевое значение, если вы хотите, чтобы шапка/header включалась в вывод.

может я что не так понял..?

ну да ладно, но как проблему то решить уважаемый Trianon, не затруднит вас проверить у себя эти настройки, будет работать?

  Ответить  
 
 автор: Trianon   (23.04.2010 в 12:18)   письмо автору
 
   для: *m*   (23.04.2010 в 11:48)
 

>может я что не так понял..?

Установить в ненулевое значение - значит поставить что-нибудь отличное от нуля.
Единичку например.

>не затруднит вас проверить у себя эти настройки, будет работать?

Я сейчас сам за корпоративным прокси сижу. Цепочки из проксей он строить не позволяет.

  Ответить  
 
 автор: *m*   (23.04.2010 в 12:28)   письмо автору
 
   для: Trianon   (23.04.2010 в 12:18)
 

блин бывает же такое несколько раз перечитывал))) (был уверен что там написано нулевое)
сори за ненужную полемеку..

"И все таки где же у него кнопка....?"

  Ответить  
 
 автор: Trianon   (23.04.2010 в 12:53)   письмо автору
 
   для: *m*   (23.04.2010 в 12:28)
 

Что - совсем ничего не возвращает?
Может прокси подох?
Вы его браузером то применяли?

  Ответить  
 
 автор: *m*   (23.04.2010 в 15:02)   письмо автору
 
   для: Trianon   (23.04.2010 в 12:53)
 

прокси был рабочий, счас действительно мертвый, нашел другой, вывело:

HTTP/1.0 302 Moved Temporarily Server: squid/2.5.STABLE12-20060202 Date: Fri, 23 Apr 2010 10:59:41 GMT Content-Length: 0 Location: http://192.168.0.222/publico/redirect.html


добавил

curl_setopt($r, CURLOPT_FOLLOWLOCATION, 1);


теперь попадаю на http://192.168.0.222/cgi-pub/login.cgi, не пойму это для этого прокси авторизация чтоли какая то нужна??

в заголовке выводит Content-Length: 478 , только вот где этот контент, как его получить..?

  Ответить  
 
 автор: Trianon   (23.04.2010 в 15:43)   письмо автору
 
   для: *m*   (23.04.2010 в 15:02)
 

контент идет вслед за заголовком. Разделены они первой пустой строкой.

  Ответить  
 
 автор: Тень*   (22.04.2010 в 18:56)   письмо автору
 
   для: Trianon   (22.04.2010 в 16:09)
 

> error_reporting(E_ALL|E_NOTICE)
E_ALL в себя E_NOTICE включает. Не включает только E_STRICT.

  Ответить  
 
 автор: *m*   (22.04.2010 в 22:31)   письмо автору
 
   для: Trianon   (22.04.2010 в 16:09)
 

уже перепробовал разные самые прокси, та же беда, как быть то, без прокси работает с прокси - нет..
пустая страница

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования