Перейти к содержимому


Авторизация Через Curl

php login авторизация

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 keadis

keadis

    Пользователь

  • Пользователи
  • PipPip
  • 40 сообщений
  • ГородМосква

Отправлено 24 Декабрь 2013 - 01:25

Здравствуйте.

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

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

Делаю простую авторизацию и запускаю процесс скачивания файла

<?php
$username = 'email@mail.ru';
$password = 'passwd';
$loginUrl = 'http://storeland.ru/user/login/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $loginUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'act=login&action_to=http://storeland.ru&site_id=27872&to=&hash=029fb7&form[user_mail]='.$username.'&form[user_pass]='.$password);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec($ch);

curl_setopt($ch, CURLOPT_URL, 'http://someshop.ru/admin/store_goods_export/cid_XXXXXXX');
$content = curl_exec($ch);
file_put_contents('download.csv', $content);
?>

Однако процесс авторизации не проходит.

Просьба помочь разобраться



В случае если я вместо POST запрос пишу единой строкой и вставляю в адресную строку браузера, ТО в таком режиме работает авторизация и переадресует на нужную страницу.

#2 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 24 Декабрь 2013 - 06:48

Как я понимаю у вас hash статичный? Прежде чем его передавать - его необходимо получить.

#3 keadis

keadis

    Пользователь

  • Пользователи
  • PipPip
  • 40 сообщений
  • ГородМосква

Отправлено 24 Декабрь 2013 - 14:57

Просмотр сообщенияСake (24 Декабрь 2013 - 06:48) писал:

Как я понимаю у вас hash статичный? Прежде чем его передавать - его необходимо получить.
Можете объяснить как его получить?

#4 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 25 Декабрь 2013 - 03:47

В качестве варианта получения значения hash может быть как ручной парсинт страницы (preg_match) так и использование навигации по DOM дереву. В качестве упрощения навигации можете использовать класс phpQuery или любой аналогичный.





Темы с аналогичным тегами php, login, авторизация

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных