Od jakiegoś czasu piszę bota w cURL, który będzie na moim forum zakładał tematy o newsach pojawiająch się w serwisie. Niedawno udało mi się ukończyć prace, ale podczas testów wyszło, że bot raz działa a raz nie tzn raz podczas wysyłania newsa pisze na forum temat a raz się blokuje i po zalogowaniu się na forum dalej nic już nie robi. Poniżej podaję skrypt bota:
<?php function createPostString($aPostFields) { foreach ($aPostFields as $key => $value) { } } $tytul = $_POST['tytul']; $tresc = $_POST['tresc']; //WCHODZI NA FORUM $form_url='http://forumbb3.pl'; $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $form_url); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $site=curl_exec($ch); //LOGUJE SIE $form_url='http://forumbb3.pl/ucp.php?mode=login'; curl_setopt($ch, CURLOPT_URL, $form_url); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4'); curl_setopt($ch, CURLOPT_POST, 1); //logowanie - zmienne post curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, $form_url); curl_setopt($ch, CURLOPT_POSTFIELDS, "username=USER&password=xxx&autologin=0&redirect='index.php'&login='Log In'"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); //PISZE TEMAT $form_url='http://forumbb3.pl/posting.php?mode=post&f=52'; curl_setopt($ch, CURLOPT_URL, $form_url); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, $form_url); curl_setopt($ch, CURLOPT_HEADER, 0); $strona=curl_exec($ch); //POBIERA TOKEN ITP $lastclick=$click['1']; $creation_time=$creation['1']; $form_token=$token['1']; //WYSYLA TEMAT $postFields['icon'] = '0'; $postFields['subject'] = $tytul; $postFields['addbbcode20'] = '100'; $postFields['message'] = $tresc; $postFields['creation_time'] = $creation_time; $postFields['post'] = 'Submit'; $postFields['attach_sig'] = 'on'; $postFields['topic_type'] = '0'; $postFields['topic_time_limit'] = ''; $postFields['filecomment'] = ''; $postFields['poll_title'] = ''; $postFields['poll_option_texte'] = ''; $postFields['poll_max_options'] = '1'; $postFields['poll_length'] = '0'; $postFields['form_token'] = $form_token; $postFields['lastclick'] = $lastclick; $form_url='http://forumbb3.pl/posting.php?mode=post&f=52'; curl_setopt($ch, CURLOPT_URL, $form_url); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4'); curl_setopt($ch, CURLOPT_POST, 1); //logowanie - zmienne post curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_REFERER, $form_url); curl_setopt($ch, CURLOPT_POSTFIELDS, createPostString($postFields)); curl_setopt($ch, CURLOPT_HEADER, 1); curl_exec($ch); curl_close($ch); ?>
Jak już wspominałem bot zawsze się loguje na forum, problem pojawia się gdy przychodzi czas na wysłanie tematu. Dlaczego raz działa jak powinien a raz nie?
Pozdrawiam.