[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сurl пост запрос
qaz333
ТУТ возник такой вопрос, нужно авторизоватся на форум IPB и создать тему

пост данные выглядят так


<input type='hidden' name='act' value='Post' />
<input
type='hidden' name='s' value='' />
<input
type='hidden' name='f' value='201' />
<input
type='hidden' name='auth_key' value='0b636b48819787da8b5fa48c2c27185b' />
<input
type='hidden' name='removeattachid' value='0' />
<input
type='hidden' name='MAX_FILE_SIZE' value='102400000' />
<input
type='hidden' name='CODE' value='01' />
<input
type='hidden' name='attach_post_key' value='44a6b7fccccb10d1b2017bab32464721' />


етот ключ


<input type='hidden' name='attach_post_key' value='44a6b7fccccb10d1b2017bab32464721' />


меняется при каждом отерытии формы отправки, вопрос как отправить пост запрос,

вот мой код

Свернутый текст

$cur=curl_init();
curl_setopt($cur, CURLOPT_URL, 'http://site.ru/index.php?act=Login&CODE=01&CookieDate=1');
curl_setopt($cur,CURLOPT_USERAGENT,"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10");
curl_setopt($cur,CURLOPT_COOKIEJAR,'cookie.txt');
curl_setopt($cur,CURLOPT_COOKIEFILE,'cookie.txt');
curl_setopt($cur,CURLOPT_RETURNTRANSFER,1);
curl_setopt($cur, CURLOPT_POST, 1);
curl_setopt($cur, CURLOPT_POSTFIELDS, "referer=$refer&UserName=login&PassWord=pass&CookieDate=1&Privacy=1");
curl_exec($cur);
curl_close($cur);


$cur=curl_init();
curl_setopt($cur, CURLOPT_URL, 'http://site.ru/index.php?act=post&do=new_post&f=201');
curl_setopt($cur,CURLOPT_USERAGENT,"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10");
curl_setopt($cur,CURLOPT_COOKIEJAR,'cookie.txt');
curl_setopt($cur,CURLOPT_COOKIEFILE,'cookie.txt');
curl_setopt($cur,CURLOPT_RETURNTRANSFER,1);
$doc = curl_exec($cur);
curl_close($cur);
preg_match("/<input type=\'hidden\' name=\'attach_post_key\'(.*?)\/>/",$doc, $aa);
preg_match("/[a-zA-Z0-9]{10,100}/",$aa[0], $bb);



$cur=curl_init();
curl_setopt($cur, CURLOPT_URL,'http://site.ru/index.php?' );
curl_setopt($cur,CURLOPT_USERAGENT,"Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10");
curl_setopt($cur,CURLOPT_COOKIEJAR,'cookie.txt');
curl_setopt($cur,CURLOPT_COOKIEFILE,'cookie.txt');
curl_setopt($cur,CURLOPT_RETURNTRANSFER,1);
curl_setopt($cur, CURLOPT_POST, 1);
curl_setopt($cur, CURLOPT_POSTFIELDS, "act=Post&f=201&auth_key=47442e6ac2fd23311b01a0db9ed438b1&removeattachid=0&MAX_FILE_SIZE=102400000&CODE=01&attach_post_key=$bb[0]&TopicTitle=$theme&TopicDesc=0&Post=$mypost");
curl_exec($cur);
curl_close($cur);


но такой вариант естественно неподходит, как быть? помогите исправить код штобы он работал плыз



Спустя 8 часов, 27 минут, 47 секунд (11.08.2011 - 22:55) walerus написал(а):
Зачем столько курлов ?? если поля отправляются ОДИН раз ? адрес форума в студию... попробую помочь.

Спустя 12 часов, 21 минута, 6 секунд (12.08.2011 - 11:16) qaz333 написал(а):
Цитата (walerus @ 11.08.2011 - 19:55)
Зачем столько курлов ?? если поля отправляются ОДИН раз ? адрес форума в студию... попробую помочь.

вот форум

Спустя 37 минут, 12 секунд (12.08.2011 - 11:53) walerus написал(а):
Вот скрипт.

<html>
<
head>
<
meta http-equiv="content-type" content="text/html; charset=UTF-8">
</
head>
<
body>
<?
set_time_limit( 0 );
error_reporting( E_ALL );

clearstatcache();

function _post($array)
{
$result = '';
foreach ($array as $name => &$value)
$result .= ($result)? '&'.$name.'='.urlencode($value) : $name.'='.urlencode($value);
return $result;
}

// имя файла для куки
$cookie_filename = 'cookies_tmp.tmp';

//настраиваем курл
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1');
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_filename);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_filename);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

$user_name = ''; // Указать логин пользователя
$user_pass = ''; // Указать пароль пользователя

$form_login = array( 'UserName' => $user_name,
'PassWord' => $user_pass,
'referer' => 'http://wmforum.net.ru/',
'CookieDate' => '1',
);


## Переходим на страницу логина
curl_setopt($curl, CURLOPT_REFERER, 'http://wmforum.net.ru/');
curl_setopt($curl, CURLOPT_URL, 'http://wmforum.net.ru/index.php?act=Login&CODE=00');
curl_setopt($curl, CURLOPT_POST, false);
$content = curl_exec($curl);

## Логинимся
curl_setopt($curl, CURLOPT_REFERER, 'http://wmforum.net.ru/?act=login&CODE=00');
curl_setopt($curl, CURLOPT_URL, 'http://wmforum.net.ru/?act=login&CODE=01');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, _post($form_login));
$content = curl_exec($curl);

## Переходим на страницу пользователя
curl_setopt($curl, CURLOPT_REFERER, 'http://wmforum.net.ru/?act=login&CODE=01');
curl_setopt($curl, CURLOPT_URL, 'http://wmforum.net.ru/index.php?');
curl_setopt($curl, CURLOPT_POST, false);
$content = curl_exec($curl);

## Закрыли курл
curl_close($curl);

$content = iconv('windows-1251', 'utf-8', $content);

print_r( $content );

die;


Что не понятно, спрашивайте...

Спустя 5 часов, 36 минут, 56 секунд (12.08.2011 - 17:30) qaz333 написал(а):
ага, ето всё хорошо, он у меня видь проблема в другом, мне надо создать тему а не авторизоватся, и проблема в том денамическом ключе как описано в первом посте,
я незнаю как одним сиансом курла можно и спасить нужнную страницу+ключ и отправить пост запрос

Спустя 6 часов, 9 минут, 36 секунд (12.08.2011 - 23:40) alexbel2404 написал(а):
значит распарсить ключ регуляркой )


preg_match("<input type='hidden' name='auth_key' value='(.*?)' />", $content, $result);

в $result[1] будет ключ, потом отправить данные уже вместе с ключем)

Спустя 2 минуты, 17 секунд (12.08.2011 - 23:42) qaz333 написал(а):
Цитата (alexbel2404 @ 12.08.2011 - 20:40)
значит распарсить ключ регуляркой )


preg_match("<input type='hidden' name='auth_key' value='(.*?)' />", $content, $result);

в $result[1] будет ключ, потом отправить данные уже вместе с ключем)


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

Спустя 1 час, 9 минут (13.08.2011 - 00:51) walerus написал(а):
Первый вопрос (без обид конечно), Вы по национальности кто?

Второе
Цитата
вы же неможете сначала открыть страницу с одной копчой, обновить страеницу на которой будет уже другая и ввести первую, онаж неподойдёт

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

Вам нужно сначала изучить/повторить, принцип работы форм, чтоб писать парсеры и автосабмиттеры...

И последнее Вы лично сами, ручками пробовали создавать темы? Лично мне написали...
Цитата
Этот форум только для чтения — новые темы и сообщения не принимаются.

Так что я не в курсе, как там создать темы...

Спустя 9 минут, 4 секунды (13.08.2011 - 01:00) kirik написал(а):
walerus
не западло всяким спамерам помогать?

Спустя 33 минуты (13.08.2011 - 01:33) walerus написал(а):
Цитата (kirik @ 12.08.2011 - 22:00)
walerus
не западло всяким спамерам помогать?

Та там не в спамерстве дело (хотя мб и в нем, тогда уже лучше хрумер юзать), там форум для заработка, если я правильно понял. Заработок за общение типа.

Ну и по теме, он код выложил, что то правильно что то нет, мне проще написать с 0, чем ковырять его код, да и на спамера он сильно не похож, т.к. не знает даже, как разобрать капчу...

Кстати ТС, для чего скрипт то будешь использовать?? rolleyes.gif

Спустя 3 часа, 25 минут, 15 секунд (13.08.2011 - 04:59) kirik написал(а):
Цитата (walerus @ 12.08.2011 - 18:33)
там форум для заработка, если я правильно понял. Заработок за общение типа.

Я заметил. Тоесть ты скрипт напишешь, а он будет зарабатывать? smile.gif

Спустя 4 часа, 5 минут, 57 секунд (13.08.2011 - 09:04) walerus написал(а):
Цитата (kirik @ 13.08.2011 - 01:59)
Цитата (walerus @ 12.08.2011 - 18:33)
там форум для заработка, если я правильно понял. Заработок за общение типа.

Я заметил. Тоесть ты скрипт напишешь, а он будет зарабатывать? smile.gif

Ну никто не мешает использовать скрипт другим, есть желание - пользуйтесь, но логином и созданием темы, я так думаю не закончится скрипт, еще нужно формировать тему сообщения, само сообщение и еще кучу всего )), думаю что абракадабру писать в сообщениях не получится, т.к. скорее всего будет модерироваться...

Спустя 56 минут, 42 секунды (13.08.2011 - 10:01) qaz333 написал(а):
ааа, всё, дошло чего мой код неработает,
поле

<input type='hidden' name='auth_key' value='0b636b48819787da8b5fa48c2c27185b' />


тоже меняется))

скрипт для бота, который будет сам общатся на форуме, walerus большое вам спасибо за активную потдержку +1 :)

Спустя 3 минуты, 56 секунд (13.08.2011 - 10:05) qaz333 написал(а):
[QUOTE=walerus,13.08.2011 - 06:04] [QUOTE=kirik,13.08.2011 - 01:59]
Ну никто не мешает использовать скрипт другим, есть желание - пользуйтесь, но логином и созданием темы, я так думаю не закончится скрипт, еще нужно формировать тему сообщения, само сообщение и еще кучу всего )), думаю что абракадабру писать в сообщениях не получится, т.к. скорее всего будет модерироваться...
[/QUOTE]

всё нормально он будет писать, я всё до мелорчей продумал, до того пока небыло етой проблемы скрипт стбильно 50 с копейками центов накаждом из 5ти форумов набирал

а ето за день почти 3 бакса, за ничего неделая, так как скритп сам запускался кроном))

Спустя 2 часа, 36 минут, 59 секунд (13.08.2011 - 12:42) alexbel2404 написал(а):
ну тогда с тебя процент smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.