Я использовал все необходимые параметры cURL (CURLOPT_COOKIEJAR, CURLOPT_COOKIEFILE, CURLOPT_FOLLOWLOCATION), чтобы получить CURL, пропустив страницу входа, но безуспешно. Я пытаюсь передать логин на http://apps.allogalogistics.ro и получить некоторые записи на другой странице. Страница входа имеет перенаправление.
Я создаю запрос POST на странице входа и сохраняю файлы cookie в файле cookies.txt с помощью CURLOPT_COOKIEJAR и CURLOPT_COOKIEFILE. Я вижу, что после запроса POST в процессе входа в систему инициируется еще один запрос GET. Я перепробовал все, что я прочитал, но все, что я вижу из cURL, - это страница входа с пустым именем пользователя / паролем (не зарегистрировано), даже если ответ «ОК».
<?php
$url = "http://apps.allogalogistics.ro";
$ckfile = dirname(__FILE__) . '/cookies1.txt';
$logfile = dirname(__FILE__) . '/log.txt';
$username = "XXXX";
$password = "YYYY";
$f = fopen($logfile, 'w');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt($ch, CURLOPT_COOKIEFILE, $ckfile);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//curl_setopt($ch, CURLOPT_REFERER, $url); //"http://apps.allogalogistics.ro/main/Desktop"
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_STDERR, $f);
/* --- Input fields in the login page ----
txtRedirect: /main/Desktop
txtPlatform: Desktop
txtLogonPath:
redirectTo:
rowid:
txtOrganization: main
txtUserName: XXXX
txtPassword: YYYY
ckRememberMe: on
------------------*/
// Collecting all POST fields
$postfields = array();
$postfields['language'] = "";
$postfields['platform'] = "desktop";
$postfields['txtUserName'] = rawurlencode($username);
$postfields['txtPassword'] = rawurlencode($password);
$postfields['txtRedirect'] = rawurlencode('/main/Desktop');
$postfields['txtPlatform'] = "Desktop";
$postfields['txtLogonPath'] = "";
$postfields['redirectTo'] = "";
$postfields['rowid'] = "";
$postfields['txtOrganization'] = "main";
$postfields['ckRememberMe'] = "on"; //checked
//$postfields['btnLogin'] = "Autentificare";
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
$ret = curl_exec($ch);
$errors = curl_error($ch);
$details = curl_getinfo($ch);
var_dump($errors);
var_dump($details);
curl_close($ch);
fclose($f);
var_dump($ret);
?>
Ожидается, что будет пройдена страница входаи сеанс продолжал получать с другой страницы некоторые записи.