Уважаемые коллеги!
Прошу помощи, наверное, я чего-то не понимаю.
Задача: с помощью PHP-скрипта автоматически авторизоваться на другом сайте и перейти на него (в браузере пользователя).
Т.е. юзер заходит на
мой сайт, скрипт авторизации посылает информацию для авторизации на
сторонний сайт, после чего перекидывает пользователя на этот сторонний сайт, где уже произведена авторизация с помощью определенного логина и пароля.
Делаю авторизацию при помощи curl.
Проблема: почему-то при выводе результатов в браузер с помощью echo авторизация срабатывает, но "теряется" при последующем переходе на этот сайт с помощью заголовка Refresh или Location// URL скрипта авторизации на стороннем сайте
$login_url = 'https://example.com/index.php?action=login2';
// параметры для отправки запроса - логин и пароль
$post_data = array(
'user' => 'MYUSERNAME',
'passwrd' => 'MYPASSWORD',
'cookielength' => '-1',
'hash_passwrd' => ''
);
// создание объекта curl
$ch = curl_init();
// используем User Agent браузера
$agent = $_SERVER["HTTP_USER_AGENT"];
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
// задаем URL
curl_setopt($ch, CURLOPT_URL, $login_url );
// указываем что это POST запрос
curl_setopt($ch, CURLOPT_POST, 1 );
// задаем параметры запроса
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
// указываем, чтобы нам вернулось содержимое после запроса
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// в случае необходимости, следовать по перенаправлени¤м
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
/*
Задаем параметры сохранени¤ cookie
как правило Cookie необходимы для дальнейшей работы с авторизацией
*/
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
// выполняем запрос для авторизации
$postResult = curl_exec($ch);
curl_close($ch);
// Если выводим результат работы curl на страницу через Echo,
// то показывает страницу с авторизованным пользователем (всё работает)
// echo $postResult;
// А если перекидываем пользователя на нужную страницу
//в браузере пользователя, то авторизация теряется, и мы видим "Привет гость"
header( 'Refresh: 0; url=https://example.com/index.php' );
Почему авторизация срабатывает при выводе результатов в браузер, но "теряется" при переходе на этот сайт с помощью заголовка Refresh или Location? И как решить эту проблему?
Заранее огромное спасибо!