Oara\Network\Publisher\WebePartners::login PHP Метод

login() публичный Метод

public login ( $credentials )
$credentials
    public function login($credentials)
    {
        $user = $credentials['user'];
        $password = $credentials['password'];
        $this->_client = new \Oara\Curl\Access($credentials);
        $url = "http://panel.webepartners.pl/Account/Login";
        $urls = array();
        $urls[] = new \Oara\Curl\Request($url, array());
        $result = $this->_client->get($urls);
        $doc = new \DOMDocument();
        @$doc->loadHTML($result[0]);
        $xpath = new \DOMXPath($doc);
        $results = $xpath->query('//input[@type="hidden"]');
        foreach ($results as $result) {
            $name = $result->attributes->getNamedItem("name")->nodeValue;
            if ($name == "__RequestVerificationToken") {
                $hiddenValue = $result->attributes->getNamedItem("value")->nodeValue;
            }
        }
        if ($hiddenValue == null) {
            throw new \Exception("hidden value not found");
        }
        $valuesLogin = array(new \Oara\Curl\Parameter('__RequestVerificationToken', $hiddenValue), new \Oara\Curl\Parameter('Login', $user), new \Oara\Curl\Parameter('Password', $password));
        $urls = array();
        $urls[] = new \Oara\Curl\Request($url, $valuesLogin);
        $this->_client->post($urls);
        $urls = array();
        $urls[] = new \Oara\Curl\Request("http://panel.webepartners.pl/AffiliateTools/Api", $valuesLogin);
        $result = $this->_client->post($urls);
        $doc = new \DOMDocument();
        @$doc->loadHTML($result[0]);
        $xpath = new \DOMXPath($doc);
        $results = $xpath->query('//a[@href*="Authorize"]');
        if ($results->length > 0) {
            $item = $results->item(0);
            $url = $item->attributes->getNamedItem("href")->nodeValue;
            $parsedUrl = \parse_url($url);
            \parse_str($parsedUrl["query"], $parameters);
            $apiPass = $parameters["password"];
            $this->_pass = $apiPass;
        }
    }