Всем привет, мне необходимо очень быстро отправить в форму 120 комбинаций, в ручную это займет какое-то время, так что хочу попробовать это реализовать через curl:
$email = login@mail.ru';
$pass = '123';
$login_url = 'http://site.ru/login';
$pin_url = 'http://site.ru/promo';
$agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3';
$referer = 'http://site.ru/';
$data = array('name' => $email, 'pass' => $pass, 'send' => 'Войти');
// вход в систему
// имя хоста, куда будем заходить
// инициализация cURL
$ch = curl_init($login_url);
// получать заголовки
curl_setopt ($ch, CURLOPT_HEADER, 1);
// если ведется проверка HTTP User-agent, то передаем один из возможных допустимых вариантов:
curl_setopt ($ch, CURLOPT_USERAGENT, $agent);
// елси проверятся откуда пришел пользователь, то указываем допустимый заголовок HTTP Referer:
curl_setopt ($ch, CURLOPT_REFERER, $referer);
// использовать метод POST
curl_setopt ($ch, CURLOPT_POST, 1);
// сохранять информацию Cookie в файл, чтобы потом можно было ее использовать
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
// передаем поля формы
curl_setopt ($ch, CURLOPT_POSTFIELDS, $data);
// возвращать результат работы
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
// не проверять SSL сертификат
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
// не проверять Host SSL сертификата
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
// это необходимо, чтобы cURL не высылал заголовок на ожидание
curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Expect:'));
// выполнить запрос
curl_exec ($ch);
// получить результат работы
$result = curl_multi_getcontent ($ch);
// вывести результат
echo "\n".'Login OK'."\n".'[result ===8<===>'."\n".$result."\n".'<===>8=== result]'."\n";
// закрыть сессию работы с cURL
curl_close ($ch);
Все, вроде как залогинился, теперь мне надо перейти на страницу $pin_url и там уже перебирать комбинации.
Я так понимаю если у меня создался файл с куками входить при каждой новой попытке уже не надо будет, если я не прав, поправьте.
Собственно вопросы:
1. Как перейти на страницу $pin_url и там уже начать делать перебор?
Возможно просто в этом же сеансе создать новый сеанс и просто перейти на новую страницу.
2. При переборе комбинаций, чтобы не вычислили я думаю надо поставить какой-то таймаут?