Всем привет. Необходимо с помощью PHP авторизоваться в личном кабинете МТС.
Я делаю запрос на сайт
https://lk.ssl.mts.ru/ и в ответ мне приходит такое
Я пытаюсь достаю из формы параметры и отправить post запрос. В результате мне приходит такой ответ
Кто может подсказать что это такое?
Вот кусок кода curl
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$phone = '915111111';
$pass = '11111';
$aHeaders = array(
'Connection: keep-alive',
'Upgrade-Insecure-Requests: 1',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding: gzip, deflate, sdch, br',
'Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/' . $phone . '-cookie.txt'); // сохранять куки в файл
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/' . $phone . '-cookie.txt');
curl_setopt($ch, CURLOPT_USERAGENT, ' Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36');
function CURL($url, $aPost=array(), $aHeaders=array()){
global $ch;
curl_setopt($ch, CURLOPT_URL, $url);
if(is_array($aPost) && count($aPost)){
curl_setopt($ch, CURLOPT_POST, 1); // использовать данные в post
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($aPost));
}
if(count($aHeaders)){
curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeaders);
}
$html = curl_exec($ch);
if(curl_exec($ch) === false) {
$error = 'Ошибка curl : ' . curl_error($ch);
print_r( $error);
return false;
}
else {
return $html;
}
}
function ParseForm($htmlForm)
{
$valueRegExp = '/value\\s*=\\s*("[^"]*"|\'[^\']*\'|[\\w\\-\\/\\\\]+)/i';
$inputRegExp = '/<input[^>]+name\\s*=\\s*("[^"]*"|\'[^\']*\'|[\\w\\-\\/\\\\]+)[^>]*>|<select[^>]+name\\s*=\\s*("[^"]*"|\'[^\']*\'|[\\w\\-\\/\\\\]+)[^>]*>[\\s\\S]*?<\\/select>/i';
$returnValue = preg_match_all($inputRegExp, $htmlForm, $matches);
if (!count($matches)) {
return false;
}
$aResult = array();
foreach ($matches[0] as $key => $sStr) {
$value = null;
$name = '';
$nameInput = $matches[1][$key];
$selInput = $matches[2][$key];
if ($nameInput) {
if (preg_match('/type\s*=\s*[\'"]?button[\'"]?/i', $sStr, $matchesButton)) {
$value = 'undefined';
} else if (preg_match('/type\s*=\s*[\'"]?checkbox[\'"]?/i', $sStr, $matchesCheckbox)) {
if (preg_match('/[^\w\-]checked[^\w\-]/i', $sStr, $matchesCheckbox)) {
preg_match($valueRegExp, $sStr, $matchesValue);
$value = isset($matchesValue[1]) ? $matchesValue[1] : 'on';
}
} else {
preg_match($valueRegExp, $sStr, $matchesValue);
$value = isset($matchesValue[1]) ? $matchesValue[1] : '';
}
$name = preg_replace('/^"([^"]*)"$|^\'([^\']*)\'$/', '$1$2', $nameInput) ;
} //value = /[^\w\-]checked[^\w\-]/i.test(str) ? getParam(str, nullVal, nullVal, valueRegExp, valueReplace) || 'on' : undefined;
else if ($selInput) {
$name = preg_replace('/^"([^"]*)"$|^\'([^\']*)\'$/', '$1$2', $selInput) ;
}
if ($value != 'undefined') {
$aResult[$name] = $value;
}
}
if (preg_match('/type=\"submit\" value=\"(.*?)\"/i', $htmlForm, $matchesSubmit)) {
// print_r($matchesSubmit);
}
return $aResult;
}
function endsWith($str, $suffix) {
if(strrpos($str, $suffix, -1) === false){
return false;
}
return true;
}
function joinUrl($url, $path) {
if (!$path) //Пустой путь
return $url;
if (preg_match('/^\//', $path)){
//Абсолютный путь
return preg_replace('/^(\\w+:\\/\\/[\\w.\\-]+).*$/', '$1'.$path, $url );
}
if (preg_match('/^\w+:\/\//', $path)) {
return $path;
}
//относительный путь
$url = preg_replace('/\\?.*$/', '', $url);
if (preg_match('/:\\/\\/.*\\//', $url)){
$url = $url = preg_replace('/\\/[^\\/]*$/', '/', $url);
}
if (!endsWith($url, '/'))
$url .= '/';
return $url + $path;
}
function redirectIfNeeded($html, $url){
//Потребовался редирект формой...
if(preg_match('/<body[^>]+onload[^>]+submit/i', $html, $matches)){
$aPost = ParseForm($html);
$action = '';
if(preg_match('/<form[^>]+action=[\'"]([^\'"]*)/', $html, $matchesAction)){
$action = $matchesAction[1];
}
$url = joinUrl($url, $action);
$aHeadersNew = array_merge($GLOBALS['aHeaders'], array('Refefer: '.$url));
$html = CURL($url, $aPost, $aHeadersNew);
$html = mb_convert_encoding($html, 'UTF-8');
print_r($html);
}
//return $html;
}
/*********************/
$url = "https://lk.ssl.mts.ru/";
curl_setopt($ch, CURLOPT_URL, $url);
$html = curl_exec($ch);
$html = redirectIfNeeded($html, $url);
//åprint_r($html);
return;