Прочитал и применил любой совет, но не могу пройти страницу входа с cURL в php - PullRequest
0 голосов
/ 01 ноября 2019

Я использовал все необходимые параметры 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);

?>

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

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