phillip
Полезный
- Регистрация
- 4 Сен 2007
- Сообщения
- 411
- Реакции
- 15
- Автор темы
- #1
все знают постилки в вордпресс через xml-rpc но я вот задался целью сделать постилку через импорт xml карты. нарыл старую функцию авторизации на вордпрессе. но дальше тупик. Помогите, не получается нифига.
Авторизуюсь на Для просмотра ссылки Войдиили Зарегистрируйся
логин *** пасс ***
Затем иду на Для просмотра ссылки Войдиили Зарегистрируйся
отправляю файл а дальше тупик. нид хелп!
что-то долго никто не писал) справился сам)
Авторизуюсь на Для просмотра ссылки Войди
логин *** пасс ***
Затем иду на Для просмотра ссылки Войди
отправляю файл а дальше тупик. нид хелп!
PHP:
function blogvis_posting($blog_url, $login, $pass){
$avtorize_page= $blog_url.'wp-login.php';
$import_xml_page=$blog_url.'wp-admin/admin.php?import=wordpress';
$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";
//Заходим на страницу авторизации
$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;
//Авторизируемся
$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);
//Идем на страницу импорта
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$import_xml_page);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
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);
//Получаем wpnonce необходимую для подстановки в урл
preg_match('&_wpnonce=(.+)"&siU',$result,$matches);
$wpnonce=$matches[1];
$url=$blog_url.'wp-admin/admin.php?import=wordpress&step=1&_wpnonce='.$wpnonce;
//echo $url;
$post['import']='@'.$_SERVER['DOCUMENT_ROOT'].'/my.xml';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
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, $post);
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);
preg_match('&id=(.+)"&siU',$result,$matches);
print_r($result);
return $result;
}
$blog = 'http://saltshaker232.wordpress.com/';
$login = '***';
$pass = '***';
echo blogvis_posting($blog, $login, $pass);