Как следует из названия, я пытаюсь вернуть содержимое (нескольких) страниц сайта, требующего входа в систему. Это законный логин, и у меня есть доступ к контенту - ничего не происходит.
Я искал SO и нашел несколько плакатов, пытающихся сделать то же самое - ничто из того, что я нашел, не помогло с этой конкретной проблемой.
Я пробовал несколько вариантов - добавление различных опций, таких как FOLLOWLOCATION (установлено значение true, затем попытался установить значение false); увеличение времени ожидания; настройка как COOKIEJAR, так и COOKIEFILE; вызов curl_close после входа в систему, затем новый curl_init после (до загрузки целевого файла); использование традиционных методов PHP для захвата файла (file_get_contents и т. д.); явное создание файла cookie и установка его для записи; пробовал с и без REFERER; попытался изменить REFERER; пробовал оба протокола http и https; сначала попытался вызвать curl_close, чтобы принудительно записать cookie, а затем сразу же после этого снова запустить блок скрипта; и т.д ... Не повезло.
Ниже приведен снимок используемого кода (на данный момент я пытаюсь получить только один файл).
Любые предложения будут оценены.
$e = curl_init();
curl_setopt($e, CURLOPT_URL, 'https://www.some-site.com/login.php');
curl_setopt($e, CURLOPT_POST, 1);
curl_setopt($e, CURLOPT_POSTFIELDS, 'username=bob&password=1234');
curl_setopt($e, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($e, CURLOPT_REFERER, 'https://www.some-site.com');
curl_setopt($e, CURLOPT_RETURNTRANSFER, 1);
curl_exec($e);
curl_setopt($e, CURLOPT_URL, 'https://www.some-site.com/posts.php?id=1');
$content = curl_exec($e);
print htmlentities($content);
curl_close($e);
Фактической ошибки нет - cURL работает так, как должно, но для $ content установлена страница "Вы не вошли в систему ... Пожалуйста, войдите сейчас ...".
После входа в систему через браузер (Fx, Chrome, Safari, IE) к каждому сообщению (снова через браузер) можно получить доступ без проблем.
Я в тупике.
TYIA для любых предложений - LMK, если какая-либо дополнительная информация будет полезна.