На примере этого хостинга будут разобраны подобные случаи.
x10hosting.com — бесплатный PHP CGI mySQL хостинг без рекламы.
Почти идеальный, но c несколькими неприятными особенностями.
Одна из его неприятных особенностей — если 2 недели не заходить на форум, то сайт блокируется!
На примере этого хостинга будут разобраны подобные случаи.
Так как на хостинге включены CURL (библиотека для работы с URL-запросами, обычно разрешена чаще чем fsockopen) и доступны cronы (выполнение скриптов по расписанию), то напрашивается следующее решение:
1) В браузер Mozilla Firefox установите расширение LiveHTTPHeaders.
(Пользователям других браузеров остаётся только анализировать страницу авторизации)
2) Откройте его.
3) Теперь необходимо авторизироваться на форуме.
4) Посмотрите заголовки запроса для страницы http://forums.x10hosting.com/login.php
Далее было выяснено, что для x10hosting.com используются следующие параметры POST:
vb_login_username=<логин>&vb_login_password=<что-то не похожее на пароль, у автора тут пустота>&cookieuser=1&s=&securitytoken=guest&do=login&vb_login_md5password=<md5 пароля>&vb_login_md5password_utf=<md5 в Юникоде>;
5) Напишите скрипт PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>antisuspend</title>
</head>
<body>
<?
$uri="http://forums.x10hosting.com/login.php?do=login"; //адрес страницы авторизации
$ch = curl_init($uri); //Инициализируем CURL.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_URL, $uri);
curl_setopt ($ch, CURLOPT_HEADER, true); //показывает заголовок, можно поставить false
//curl_setopt( $ch, CURLOPT_CUSTOMREQUEST,"POST");
//cookies
curl_setopt($ch, CURLOPT_COOKIEJAR, "cook");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cook");
curl_setopt( $ch, CURLOPT_POST,1); //запрос методом POST
curl_setopt( $ch, CURLOPT_POSTFIELDS,"vb_login_username=<ваш логин>&vb_login_password=&cookieuser=1&s=&securitytoken=guest&do=login&vb_login_md5password=<md5 пароля>&vb_login_md5password_utf=<md5 пароля в Unicode>"); //устанавливаем переменные POST
$res = curl_exec($ch); //выполняем запрос
//echo $res;
if(stristr($res,"Thank you for logging in"))$strl="antisuspended"; //если авторизировались
else $strl="FAILED"; //если НЕ авторизировались
echo $strl;
$log=fopen("antisuspension.log","a+"); //открываем файл
fwrite($log,"$strl: \t".date("d.m.Y D H:i:s")."\n"); //скрипт пишет строку в лог
fclose($log); //закрываем файл
?>
</body>
</html>
6) Поставьте cron на скрипт на каждую неделю.
Теперь каждую неделю скрипт автоматически заходит на форум, следовательно, забанить аккаунт по этой причине нельзя.
Источник - автор статьи.