Curl авторизация в админку WP


Dram
91

Не могу разобраться почему не работает этот код, чего не хватает?

Авторизации не происходит, эхо выводит страницу админки для ввода логина и пароля

<?php
# Задаем информацию об учетной записи: логин, пароль, домен.
$login = 'admin';
$password = 'admin';
$site = 'https://site.ru/wp-login.php';

# Задаем User Agent.
$user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36';

# Cookies сохраним в папку с нашим скриптом в одноименный текстовый файл.
$cookies = dirname(__FILE__) . '/cookies.txt';

# Инициализация cURL:
$automatic = curl_init();

# Устанавливаем переменную User Agent ("браузер" пользователя),
# Устанавливаем источник перехода - реферрера.
# cURL будет ждать выполнения функций не более 10 секунд.
curl_setopt($automatic, CURLOPT_USERAGENT, $user_agent);
curl_setopt($automatic, CURLOPT_REFERER, "http://ya.ru/");
curl_setopt($automatic, CURLOPT_TIMEOUT, 10);

curl_setopt($automatic, CURLOPT_HEADER, 1);
curl_setopt($automatic, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($automatic, CURLOPT_SSL_VERIFYHOST, 0);

# Целевая ссылка для авторизации на сайте под управлением WordPress:
curl_setopt($automatic, CURLOPT_URL, $site . '/wp-login.php');

# Разрешаем возвращать содержимое страницы.
# Разрешаем скрипту ходить по редиректам.
curl_setopt($automatic, CURLOPT_HEADER, 0); // пустые заголовки
curl_setopt($automatic, CURLOPT_RETURNTRANSFER, true);
curl_setopt($automatic, CURLOPT_FOLLOWLOCATION, true);

# Устанавливаем POST-запрос:
curl_setopt($automatic, CURLOPT_POST, true);
curl_setopt($automatic, CURLOPT_POSTFIELDS, "log=$login&pwd=$password&wp-submit=Войти&redirect_to=$site/wp-admin&testcookie=1");

# Работаем с куками, cookies:
curl_setopt($automatic, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($automatic, CURLOPT_COOKIEJAR, $cookies);


# Запускаем авторизацию:
curl_exec($automatic);

# Для примера откроем страницу админки WordPress:
curl_setopt($automatic, CURLOPT_URL, $site. '/wp-admin');
$demo = curl_exec($automatic);

# Закрываем cURL:
curl_close($automatic);

# Выводим страничку на экран:
echo $demo;


Dram

Все победил

<?php
# Задаем информацию об учетной записи: логин, пароль, домен.
$login = 'admin';
$password = 'admin';
$site = 'https://site.ru/wp-login.php';

# Задаем User Agent.
$user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36';

# Cookies сохраним в папку с нашим скриптом в одноименный текстовый файл.
$cookies = dirname(__FILE__) . '/cookies.txt';

# Инициализация cURL:
$curl = curl_init();

//---------------- generic cURL settings start ----------------
$header     = array(
    "Referer: https://site.ru/wp-login.php",
    "Origin: https://site.ru",
    "Content-Type: application/x-www-form-urlencoded",
    "Cache-Control: no-cache",
    "Pragma: no-cache",
    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15"
);


curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookies.txt');
//---------------- generic cURL settings end ----------------



$url = 'https://site/wp-login.php';
curl_setopt($curl, CURLOPT_URL, $url);

$post = "log=$login&pwd=$password&wp-submit=Log+In&redirect_to=https%3A%2F% mywordpress%2Fwp-admin%2F";
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);


curl_setopt($curl, CURLOPT_URL, $site. '/wp-admin');
$demo = curl_exec($curl);

curl_close ($curl);

echo ($demo);


LEOnidUKG

И стоило ради 6 минут, тут что-то постить.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *