PHP + cURL: авторизация на WordPress методом POST


PHP + cURL: авторизация на WordPress методом POST

Статья (если её так можно назвать) содержит пример скрипта на PHP с cURL авторизацией на произвольном сайте, который работает под управлением WordPress.

PHP + cURL: авторизация на WordPress методом POST

Итак, начинаем действовать, исходя из сведений, полученных от такого полезного дополнения к Firefox, как Firebug.

Разбирать момент использования последнего в текущем материале я не буду.

Для начала я получаю следующие важные для предстоящей работы сведения:

  • Данные отсылаются POST-запросом.
  • Помимо логина  login и пароля pwd отсылаются ещё несколько параметров типа  redirect_to(перенаправление после входа),  test_cookie (что-то связанное с куками) и  wp_submit (по-видимому клик по кнопке).

Помимо того, что я описал выше подчеркну, что придется нам с вами немного посохранять куки в файл на жестком диске, имитируя работу браузера с живым посетителем.

Исходя из полученной при поверхностном анализе информации пишем среднего объема программный код. Последний смотрите на второй странице сего материала.

Чисто ради простоты примера после того, как скрипт успешно проходит авторизацию, он заходит в закрытый раздел админки движка — «wp-admin» и на этом останавливает прерывает свою активную деятельность.

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

# Задаем User Agent.
$user_agent = 'Bad Bot';

# 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://mail.ru/");
curl_setopt($automatic, CURLOPT_TIMEOUT, 10);

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

# Разрешаем возвращать содержимое страницы.
# Разрешаем скрипту ходить по редиректам.
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;
?>

Источник: red-book-cms.ru

Previous Отправка почты в PHP с вложениями
Next Полное руководство по использованию Facebook для WordPress

Suggested Posts

Что такое Akismet и с «чем его едят»?

Создание формы входа на CSS3

Используем карты Google для увеличения посещаемости

Стилизация выпадающего списка для сайта

АДАПТИВНЫЕ ВКЛАДКИ — RESPONSIVE TABS

Крутые шрифты для логотипов, иконки, шаблоны и не только за ноябрь 2016