Задать вопрос
@9StarRu

Как автоматически залогиниться и сохранить auth.cookie файл?

Пытаюсь реализовать автоматический доступ к защищенной странице с помощью следующего кода:

<?php
  $old_ua = @ini_set('user_agent', 'glopart-subscription-2');
  $response = @file("http://glopart.ru/subscription/phpform/189456?"
  ."&subscription_login_id=".urlencode($_COOKIE["subscription_login_id"])
  ."&subscription_token=".urlencode($_COOKIE["subscription_token"])
  ."&GRemoteAddr=".urlencode($_SERVER["REMOTE_ADDR"])
  ."&GUserAgent=".urlencode($_SERVER["HTTP_USER_AGENT"])
  ."&back=".$_SERVER["SERVER_NAME"].htmlentities(urlencode($_SERVER["REQUEST_URI"])));
  if ($response !== false) {
   if (count($response)>1 || $response[0] != 'true') {
    header('Content-Type: text/html; charset=utf-8');
    die(implode("", $response));
   }
  } else die('Не удалось запросить внешний сервер');
  @ini_set('user_agent', $old_ua);
?>


Демо
логин и пароль 123456.

Очень нужно реализовать доступ с помощью cURL, чтобы при обращении к данной странице через cURL страница в результате была уже открыта, т.е. в момент обращения к ней необходимо ввести логин и пароль.
Хотелось бы еще и сохранить результат авторизации в файл auth.cookie на сервере, чтобы не выполнять авторизацию слишком часто.
Т.к. логин и пароль у каждого посетителя будет свой, auth.cookie нужно переименовывать автоматически для каждого пользователя, например файл логин_auth.cookie

Подскажите, можно ли это реализовать, если да, то как?
Буду рад образцам.

Большое спасибо!
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@entermix
В сети полно примеров работы cURL с Сookies

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://google.com/");
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

$content = curl_exec($ch); 

curl_close($ch);


UPD: Какая разница между CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR в curl?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы