Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CURL][PRZEMO] Bot
Forum PHP.pl > Forum > Przedszkole
dk1342
Witam próbuje napisać bota dla forum i na razie mam takie coś:

  1. <?php
  2. $c = curl_init();
  3. curl_setopt($c, CURLOPT_URL, "http://XXXXX.pl/login.php");
  4. curl_setopt($c, CURL_POST, 1);
  5. curl_setopt($c, CURLOPT_POSTFIELDS, "username=botek&password=******&login=zaloguj");
  6. curl_exec($c);
  7. curl_close($c);
  8. ?>


i Działa dodatkowo mam to w cronie który otwiera co 5 min aby nie wylogowywało
lecz chce teraz zrobić żeby ten zalogowany user "botek" napisał coś w sb więc zmodyfikowałem ten skrypt na:

  1. <?php
  2. $c = curl_init();
  3. curl_setopt($c, CURLOPT_URL, "http://XXXXX.pl/login.php");
  4. curl_setopt($c, CURL_POST, 1);
  5. curl_setopt($c, CURLOPT_POSTFIELDS, "username=botek&password=******&login=zaloguj");
  6. curl_setopt($c, CURLOPT_URL, "http://XXXXX.pl/shoutbox_view.php");
  7.  curl_setopt($c, CURLOPT_POSTFIELDS, "message=test&mode=submit");
  8.  curl_exec($c);
  9. curl_close($c);
  10. ?>


lecz gdy wykonuje powyższy skrypt pisze mi "Musisz się zalogować żeby wysłać wiadomość lub wysyłanie wiadomości jest możliwe tylko dla Administratorów i Moderatorów"

czyli tak jak by nie trzyma tej sesji zalogowania ale user botek jest zalogowany bo widać w statach.
kkuba
Moje stare funkcje do tego:

  1. <?php
  2. function _login($site, $login, $pass, $cookie)
  3.    {
  4.        $curl = curl_init();
  5.        curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
  6.        curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
  7.        curl_setopt($curl, CURLOPT_URL, $site .'/login.php');
  8.        curl_setopt($curl, CURLOPT_POST, 1);
  9.        curl_setopt($curl, CURLOPT_POSTFIELDS, 'username=' . $login . '&password=' . $pass . '&autologin=1&login=Zaloguj');
  10.        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  11.        $result = curl_exec($curl);
  12.        curl_close($curl);
  13.  
  14.        return $result;
  15.    }
  16.  
  17.    function _shout($site, $cookie, $mess)
  18.    {
  19.        $curl = curl_init();
  20.        curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
  21.        curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
  22.        curl_setopt($curl, CURLOPT_URL, $site .'/shoutbox_view.php');
  23.        curl_setopt($curl, CURLOPT_POST, 1);
  24.        curl_setopt($curl, CURLOPT_POSTFIELDS, 'message=' . $mess . '&mode=submit');
  25.        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  26.        $result = curl_exec($curl);
  27.        curl_close($curl);
  28.  
  29.        return $result;
  30.    }
  31.  
  32.    function _get_last($site, $cookie)
  33.    {
  34.        $curl = curl_init();
  35.        curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
  36.        curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
  37.        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  38.        curl_setopt($curl, CURLOPT_URL, $site .'/shoutbox_view.php');
  39.        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  40.        $all = curl_exec($curl);
  41.        curl_close($curl);
  42.  
  43.        preg_match_all('/(.*)class="gensmall">(.*)</a>: (.*)</span></td>/', $all, $preg);
  44.  
  45.        echo '<pre>';
  46.        print_r($preg);
  47.        echo '</pre>';
  48.  
  49.        for($q = 99; $q > 0; $q--)
  50.        {
  51.            if(isset($preg[7][$q]) && isset($preg[8][$q]))
  52.                return $preg[7][$q] .'_explode~me_'. $preg[8][$q];
  53.                
  54.        }
  55.    }
  56. ?>


Jak ich użyć?

  1. <?php
  2. $site = 'http://strona.ru';
  3. $cookie = 'plik_cookie';
  4.  
  5. _login($site, 'Twoj_login', 'Twoje_haslo', $cookie);
  6. _shout($site, $cookie, 'gtfo');
  7. ?>


a funkcje _get_last już sobie sam rozpracuj.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.