Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как правильно посылать post через curl 
:(
    Опции темы
supervladislav
Дата 15.10.2008, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: нет
Всего: -9



подскажите как сделать пост через curl)))Загружаю это на сервер ,загружается первая страница 
а пост не происходит ,что я неправильно делаю ,а ещё поддскажите не очень догоняю ,а как
все остальные страницы поиска получить через curl??? 


Код

<?php
$d1=11;
$m1=6;
$y1=2008;
$d2=date("d");
$m2=date("m");
$y2=date("Y");
//echo $d2.$m2.$y2;
$url1="http://bn.ru/zap_fd_of2.phtml";   //офисы расширенный поиск




$ch=curl_init();
echo(curl_errno());
curl_setopt($ch, CURLOPT_URL, $url1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);  

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"day1=d1&month1=m1&year1=y1&day2=d2&month2=m2&year2=y2&start=50");

$result = curl_exec($ch);  
   curl_close($ch);
   echo $rezult;
?>

PM MAIL   Вверх
Валерия
Дата 15.10.2008, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 10.3.2007

Репутация: нет
Всего: 8



curl_setopt($ch, CURLOPT_POSTFIELDS, МАССИВ);
т.е
Код

<?php
$d1=11;
$m1=6;
$y1=2008;
$d2=date("d");
$m2=date("m");
$y2=date("Y");
//echo $d2.$m2.$y2;
$url1="http://bn.ru/zap_fd_of2.phtml";   //офисы расширенный поиск




$ch=curl_init();
echo(curl_errno());
curl_setopt($ch, CURLOPT_URL, $url1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);  

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, Array(
"day1"=>$d1,
"month1"=>$m1,
"year1"=>$y1,
"day2"=>$d2,
"month2"=>$m2,
"year2"=>$y2,
start"=>"50")
);

$result = curl_exec($ch);  
   curl_close($ch);
   echo $rezult;
?>


Добавлено через 2 минуты и 35 секунд
Ой, кажется можно просто
Код

curl_setopt($ch, CURLOPT_POSTFIELDS,Array("day1=d1&month1=m1&year1=y1&day2=d2&month2=m2&year2=y2&start=50"));

 smile 

Это сообщение отредактировал(а) Валерия - 15.10.2008, 19:25
PM MAIL   Вверх
supervladislav
Дата 15.10.2008, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: нет
Всего: -9



вот изменил только чего-то неработает всёравно ))раньше хоть первая страница загружалась)))
Код

<?php
$d1=11;
$m1=6;
$y1=2008;
$d2=date("d");
$m2=date("m");
$y2=date("Y");
$mas=Array(
"day1"=>$d1,
"month1"=>$m1,
"year1"=>$y1,
"day2"=>$d2,
"month2"=>$m2,
"year2"=>$y2,
)
;
print_r($mas);

//echo $d2.$m2.$y2;
$url1="http://bn.ru/zap_fd_of2.phtml";   //офисы расширенный поиск


echo(curl_errno());

$ch=curl_init();

curl_setopt($ch, CURLOPT_URL, $url1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);  

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$mas);

$result = curl_exec($ch);  
   curl_close($ch);
   echo $rezult;
?>


Добавлено через 4 минуты и 45 секунд
а почему тут так обращаются к посту  
Код

curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "name=test&text=test&book=z-humour&UniID=".$id[1]);

PM MAIL   Вверх
unicross
Дата 18.10.2008, 20:22 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 1
Всего: 53



supervladislav, если CURLOPT_RETURNTRANSFER = 0, то эта строка
Цитата(supervladislav @  15.10.2008,  21:15 Найти цитируемый пост)
$result = curl_exec($ch); 

полностью бессмысленна, т.к. если CURLOPT_RETURNTRANSFER = 0 функция curl_exec() сразу выводит данные, а не сохраняет их в переменной $result. В этом случае надо
Код

   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

POST передается, так как у вас написано
Код

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"day1=d1&month1=m1&year1=y1&day2=d2&month2=m2&year2=y2&start=50");

Но... Если вы хотите передать значения переменных, то следует указать знак $ перед именем переменной.

Код

curl_setopt($ch, CURLOPT_POSTFIELDS,"day1=$d1&month1=$m1&year1=$y1&day2=$d2&month2=$m2&year2=$y2&start=50");


Цитата

поддскажите не очень догоняю ,а как
все остальные страницы поиска получить через curl??? 

Никак...  smile  Разбираем полученный результат с помощью регулярных выражений. Вытаскиваем все ссылки и переходим по ним. Здесь надо учитывать много факторов. Например, учитывать базовый адрес страницы, разбирать все относительные ссылки и т.п.

В языке Perl есть отличная библиотека LWP. Внутри этой библиотеки есть множество парсеров, в том числе и для разбора ссылок. Так что, если регулярки изучать не хочется, то качайте и изучайте мануал по LWP.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0834 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.