phillip
Полезный
- Регистрация
- 4 Сен 2007
- Сообщения
- 411
- Реакции
- 15
- Автор темы
- #1
Пробую авторизоваться на вордпрессе- ничего не выходит. алгоритм такой-
1)курлом вытаскиваем страницу адрес_блога/wp-login.php
2)выпарсиваем hidden значения и помещаем в массив $query, добавляем в этот же массив элементы с логином и пассом
3) отправляем POST запрос на страницу адрес_блога/wp-login.php
результат- нифига. проверьте, пожалуйста, у себя. Или подскажите где я ошибся. спасибо
1)курлом вытаскиваем страницу адрес_блога/wp-login.php
2)выпарсиваем hidden значения и помещаем в массив $query, добавляем в этот же массив элементы с логином и пассом
PHP:
$query['log']= $login;
$query['pwd']= $pass;
результат- нифига. проверьте, пожалуйста, у себя. Или подскажите где я ошибся. спасибо
PHP:
<?php
//header('Content-Type: text/plain');
$blog= 'http://charliestories.blogvis.com/';
$login= 'charlie';
$pass= 'TmsFCd0d8qu1';
echo blogvis_posting($blog, $login, $pass);
function blogvis_posting($blog_url, $login, $pass){
$avtorize_page= $blog_url.'wp-login.php';
$agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7';
$header[] = "Accept: text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5" ;
$header[] = "Accept_charset: windows-1251, utf-8, utf-16;q=0.6, *;q=0.1";
$header[] = "Accept_encoding: identity";
$header[] = "Accept_language: en-us,en;q=0.5";
$header[] = "Connection: close";
$header[] = "Cache-Control: no-store, no-cache, must-revalidate";
$header[] = "Keep_alive: 300";
$header[] = "Expires: Thu, 01 Jan 1970 00:00:01 GMT";
// GO TO Avtorize PAGE
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $avtorize_page);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ( $ch , CURLOPT_USERAGENT , $agent);
curl_setopt ( $ch , CURLOPT_HTTPHEADER , $header);
$result = curl_exec($ch);
curl_close($ch);
preg_match_all('&<input.+type=\"hidden\".+>&iU', $result, $inputs);
$query = array();
foreach ($inputs[0] as $input) {
preg_match('&<input.+type=\"hidden\".+name=\"(.+)\".+value=\"(.+)\".+>&iU', $input, $inp);
if (isset($inp[1])) {
if (isset($inp[2])) $query[$inp[1]]=$inp[2]; else $query[$inp[1]]='';
}
}
$query['log']= $login;
$query['pwd']= $pass;
print_r($query);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$avtorize_page);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
curl_setopt ( $ch , CURLOPT_USERAGENT , $agent);
curl_setopt ( $ch , CURLOPT_HTTPHEADER , $header);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>