14 Май 2008

Скрипт проверки баланса в SAPE

posted in PHP |

Вашему вниманию представляется простой скрипт проверки состояния вашего счета в SAPE. Скрипт на PHP с использованием curl. Сценарий логинится в системе и "выдирает со страницы" небольшой блок слева с информацией о доходе, расходах, балансе.

Разберем сначала форму логина:

HTML:
  1. <form action="/login.php" method="post">
  2. <input type="hidden" name="act" value="login" />
  3. <td>Логин&nbsp;</td>
  4. <td><input type="text" name="login" value="" tabindex="1"/>
  5. <td>Пароль&nbsp;</td>
  6. <td><input type="password" name="passwd" value="" tabindex="2"/>
  7. <td>&nbsp;td>
  8. <td><b>HTTP</b> | <a href="https://sape.ru/">HTTPS</a>
  9. <td>&nbsp;td>
  10. <td><input type="submit" class="button" value="Войти" style="width: 55px; margin-bottom: 5px;" tabindex="3"/>

То есть видим, что нам надо передать сценарию http://sape.ru/login.php параметры act, login, passwd методом POST, причем в act надо передать "login", а в других двух соответственно логин и пароль. Когда мы заходим через браузер на sape.ru, то попадаем на http://sape.ru/sites.php, то есть после успешного логина мы должны перейти на эту страницу, параметры никакие передавать не надо, просто GET запрос к http://sape.ru/sites.php.

На этой странице блок со статистикой размещается между

HTML:
  1. <div class="balance"> и <a href="/pay_out.php">

То есть, мы используя регулярное выражение "вырежем" этот кусок из исходника. Все шаги понятны, пишем скрипт:

PHP:
  1. <?
  2. if (function_exists("curl_init")) {  // проверяем включен ли на сервере curl
  3. echo "CURL OK";
  4.  
  5. $url='http://sape.ru'; // URL сайта
  6. $script="login.php"; // скрипт логина
  7. $log="ur_login"// ваш логин
  8. $pwd="ur_password"; // ваш пароль
  9.  
  10. $loginFields="act=login&login=".$log."&passwd=".$pwd// строка POST запроса
  11.  
  12. // LOGGING IN
  13. $ch = curl_init();
  14. curl_setopt($ch, CURLOPT_COOKIEJAR, “cookies.txt”);
  15. curl_setopt($ch, CURLOPT_COOKIEFILE, “cookies.txt”);
  16. curl_setopt($ch, CURLOPT_URL, $url."/".$script); // куда "пойдем"
  17. curl_setopt($ch, CURLOPT_POST, 1); // POST - метод
  18. curl_setopt($ch, CURLOPT_REFERER, ""); // реферер пустой (откуда пришли)
  19. curl_setopt($ch, CURLOPT_POSTFIELDS, $loginFields); // поля POST
  20.  
  21. $ret = curl_exec($ch); // запрос для залогинивания. в скрипте не будем проверять удалось ли нам зайти. Просто считаем, что точно залогинились
  22. // LOGGED IN
  23.  
  24. // NOW CHECK SAPE ACCOUNT
  25. curl_setopt($ch, CURLOPT_URL, $url."/sites.php"); // переходим на http://sape.ru/sites.php
  26. curl_setopt($ch, CURLOPT_GET, 1); // GET
  27. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Возвращать страничку
  28.  
  29. $ret = curl_exec($ch); // запускаем
  30.  
  31. curl_close($ch);
  32.  
  33. preg_match("/<div class=\"balance\">(.*)<a href=\"\/pay_out.php\">/",$ret,$matches)// регуляркой вырезаем нужный кусок и выводим
  34. echo $matches[1];
  35. }
  36. else
  37. {
  38. "ERROR: NO CURL SUPPORT!";
  39. }
  40. ?>

Чекалка аккаунта сапы готова :) Можно написать также более полезный скрипт, который будет проверять, есть ли новые заявки и, например, отправлять сообщение на электронную почту.

У нас куча комментариев (5) на запись “Скрипт проверки баланса в SAPE”

Почему бы Вам не высказать своем мнение! Позвольте нам узнать, что Вы думаете...

  1. 1 On 15.05.2008, scorpio said:

    Плагин вордпресса заменил "a xhref" на "a xhref". Будьте внимательны! :)

  2. 2 On 15.05.2008, scorpio said:

    Это по ходу не плагин, а сам тупорылый вордпресс. надо бы свое ченить написать. или сейчас поищу убивалку тупого Эдитора :)

  3. 3 On 15.05.2008, Serega said:

    Да не плохой скрипт проверки денег в Sape
    Нужно бужет как то попробовать)
    пасиб

  4. 4 On 15.05.2008, scorpio said:

    Пофиксил тему с xhref

  5. 5 On 30.06.2008, yAnTar said:

    Прикольно, хоча SAPE не юзаю, але є 1 маленька неточність.
    Цей рядок не працює
    curl_setopt($ch, CURLOPT_GET, 1); // GET

    потрібно так писати
    curl_setopt($ch, CURLOPT_POST, 0); // GET

Оставить комментарий


ЖИЗНЬ- помощь детям с онкологическими и онкогематологическими заболеваниями