14 Май 2008

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

posted in PHP |

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

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


<form action="/login.php" method="post">
<input type="hidden" name="act" value="login" />
<table>
<tr>
<td>Логин&nbsp;</td>
<td><input type="text" name="login" value="" tabindex="1"/>
<td>
<tr>
<td>Пароль&nbsp;</td>
<td><input type="password" name="passwd" value="" tabindex="2"/>
<td>
<tr>
<td>&nbsp;td>
<td><b>HTTP</b> | <a href="https://sape.ru/">HTTPS</a>
<td>
<tr>
<td>&nbsp;td>
<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.

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

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

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

<?
if (function_exists("curl_init")) {  // проверяем включен ли на сервере curl
echo "CURL OK";

$url='http://sape.ru'; // URL сайта
$script="login.php"; // скрипт логина
$log="ur_login";  // ваш логин
$pwd="ur_password"; // ваш пароль

$loginFields="act=login&login=".$log."&passwd=".$pwd;  // строка POST запроса

// LOGGING IN
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, “cookies.txt”);
curl_setopt($ch, CURLOPT_COOKIEFILE, “cookies.txt”);
curl_setopt($ch, CURLOPT_URL, $url."/".$script); // куда "пойдем"
curl_setopt($ch, CURLOPT_POST, 1); // POST - метод
curl_setopt($ch, CURLOPT_REFERER, ""); // реферер пустой (откуда пришли)
curl_setopt($ch, CURLOPT_POSTFIELDS, $loginFields); // поля POST

$ret = curl_exec($ch); // запрос для залогинивания. в скрипте не будем проверять удалось ли нам зайти. Просто считаем, что точно залогинились
// LOGGED IN

// NOW CHECK SAPE ACCOUNT
curl_setopt($ch, CURLOPT_URL, $url."/sites.php"); // переходим на http://sape.ru/sites.php
curl_setopt($ch, CURLOPT_GET, 1); // GET
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Возвращать страничку

$ret = curl_exec($ch); // запускаем

curl_close($ch);

preg_match("/<div class=\"balance\">(.*)<a href=\"\/pay_out.php\">/",$ret,$matches);  // регуляркой вырезаем нужный кусок и выводим
echo $matches[1];
}
else
{
"ERROR: NO CURL SUPPORT!";
}
?>

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

У нас 11 комментариев на запись “Скрипт проверки баланса в 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

  6. 6 On 04.03.2010, Михаил Александрович said:

    хорошая штука. Но хотелось бы видеть сразу более-менее готовое решение для проверки баланса нескольких аккаунтов 🙂

  7. 7 On 07.03.2010, Игровой куб said:

    А у вас есть много интересных статей правда не все понятно я только начал учить пхп. ))) Спасибо за информацию

  8. 8 On 02.07.2010, Tomash said:

    А можно сделать тоо же самое в баше? То есть написать скрипт исполняемый в баше, чтобы можно было проверять баланс на билайне (там тоже форма введения логина и пароля)

  9. 9 On 03.07.2010, scorpio said:

    можно написать PHP скрипт, который вызывать из командной строки

  10. 10 On 04.08.2010, Truth Hunter said:

    Было бы круто написать скрипт, который не просто проверяет налицие новых заявок, но и сам их автоматически принимает. Это сложно делается?

  11. 11 On 05.08.2010, scorpio said:

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

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