Я пытаюсь написать функцию входа в систему, используя PHP CURL, чтобы выполнить вход на следующем сайте: https://partners.mrfavorit.com/. Когда я смотрю на сетевые запросы, кажется, что платформа включена. NET.
Сначала я делаю один запрос GET для сбора файлов cookie:
$ch = curl_init();
curl_setopt_array( $ch, array(
CURLOPT_URL => 'https://partners.mrfavorit.com/',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HEADER => true,
));
$a = curl_exec($ch);
preg_match_all('|Set-Cookie: (.*);|U', $a, $results);
$cookies2 = implode(';', $results[1]);
, затем отправляю POST с учетные данные для входа в тот же URL-адрес, но он не работает, запрос возвращает 200 со страницей входа html код.
curl_setopt_array($ch, array(
CURLOPT_URL => "https://partners.mrfavorit.com/?&txtUserName=myusername&txtPassword=mypassword123",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HEADER => true,
CURLOPT_POSTFIELDS =>'',
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Cookie: ".$cookies2
),
));
$r2 = curl_exec($ch);
print_r($r2);
В чем может быть причина того, что это не удается?
Конечной целью этого является сбор данных из таблиц отчетов внутри системы.