Как получить данные с защищенного портала входа в систему, используя php curl - PullRequest
0 голосов
/ 29 апреля 2019

Итак, вот сценарий, я пытаюсь получить контент с панели мониторинга входа пользователя, которая защищена внутри формы входа. Другими словами, нам необходимо ввести информацию для входа в систему прежде, чтобы получить доступ к исходной странице, откуда мы должны получать контент.

URL портала авторизации : https://xxxxxx.xxx/login

URL внутри портала авторизации : https://xxxxxx.xxx/user_profile/dashboard

Php curl:

<?php

$login_url = ' https://xxxxxx.xxx/login';


//These are the post data username and password
$post_data = 'username=xxxx&password=xxxx';

//Create a curl object
$ch = curl_init();

//Set the useragent
$agent = $_SERVER['HTTP_USER_AGENT'];
curl_setopt($ch, CURLOPT_USERAGENT, $agent);

//Set the URL
curl_setopt($ch, CURLOPT_URL, $login_url );

//This is a POST query
curl_setopt($ch, CURLOPT_POST, 1 );

//Set the post data
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

//We want the content after the query
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//Follow Location redirects
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

/*
Set the cookie storing files
Cookie files are necessary since we are logging and session data needs to be saved
*/

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

//Execute the action to login
$postResult = curl_exec($ch);



$url = "https://xxxxxx.xxx/user_profile/dashboard";
curl_setopt($ch, CURLOPT_URL, $url);
$html = curl_exec($ch);
if(!empty($ch))
{
        $thispage = new DOMDocument;
        Libxml_use_internal_errors(true);
        $thispage->loadHTML($html);
        Libxml_clear_errors();
        $xpath = new DOMXPath($thispage) ;
        $status = $xpath->evaluate( 'string(//a[contains(text(),"YouTube")])');

        if(strpos($status, "YouTube") !== false) {
        $status = "YouTube";
          echo $status;
        }
        else
        {
           echo 'FALSE'; 
        }

}

else{
echo 'Page not found';
}

?>

внутри cookie.txt here

Итак, я просто пытаюсь извлечь XPath тега привязки (который находится внутри портала входа в систему) и пытаюсь отобразить его значение (Youtube). но, к сожалению, код, кажется, не работает. Это возвращение ЛОЖЬ.

Думаю, мне не хватает чего-то важного. Пожалуйста, любые предложения, модификации кода и реализации высоко ценится.

...