Скрипт проверки баланса в SAPE
posted in PHP |Вашему вниманию представляется простой скрипт проверки состояния вашего счета в SAPE. Скрипт на PHP с использованием curl. Сценарий логинится в системе и «выдирает со страницы» небольшой блок слева с информацией о доходе, расходах, балансе.
Разберем сначала форму логина:
<form action="/login.php" method="post"> <input type="hidden" name="act" value="login" /> <table> <tr> <td>Логин </td> <td><input type="text" name="login" value="" tabindex="1"/> <td> <tr> <td>Пароль </td> <td><input type="password" name="passwd" value="" tabindex="2"/> <td> <tr> <td> td> <td><b>HTTP</b> | <a href="https://sape.ru/">HTTPS</a> <td> <tr> <td> 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!"; } ?>
Чекалка аккаунта сапы готова 🙂 Можно написать также более полезный скрипт, который будет проверять, есть ли новые заявки и, например, отправлять сообщение на электронную почту.