curl и перемещение по сайту

230
08 февраля 2019, 09:40

Столкнулся с проблемой: нужно посредством curl перемещаться после авторизации на сайте по внутренним страницам админки, авторизуюсь - записываю куки, дальше кидает на главную админки, после чего не могу достучаться до других страниц, пишет Error in exception handler., не могу понять в чем проблема, вот код:

//получаю токен
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'https://www.example.ru/auth/login');
        curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
        //curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        $pageLogin = curl_exec($ch);
        curl_close($ch);
        $token = (new DOMXPath(@DOMDocument::loadHTML($pageLogin)))->query("//input[@name='_token']")->item(0)->getAttribute("value");

        $postFields['_token'] = $token;
        $postFields['email'] = $email;
        $postFields['password'] = $password;
        $post = '';
        foreach ($postFields as $key => $value) {
            $post .= $key . '=' . urlencode($value) . '&';
        }
        $post = substr($post, 0, -1);
        //авторизируюсь с токеном
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'https://www.example.ru/auth/login');
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0');
        curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        $page = curl_exec($ch); // make request
        curl_close($ch);
        $postFields = array(
            '_token' => $token,
            'type' => $data['user_type'],
        );
        foreach ($postFields as $key => $value) {
            $post .= $key . '=' . urlencode($value) . '&';
        }
        $post = substr($post, 0, -1);
        //отправляю другой пост на другую страницу
        $ch = curl_init();
        $url2 = 'https://www.example.ru/post/create';
        curl_setopt($ch, CURLOPT_URL, $url2);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0');
        curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        $page = curl_exec($ch); // make request
        curl_close($ch);
READ ALSO
Время работы функции в STL

Время работы функции в STL

Какое асимптотическое время работы функции qsize() очереди приоритетов?

217
ошибка передачи вектора в функцию C++

ошибка передачи вектора в функцию C++

При написании многопоточного приложения на c++ возникла необходимость передачи в функцию, которая выполняется в многопоточном режиме (multy),...

249
Как заполнить QPainterPath

Как заполнить QPainterPath

Не понимаю как использовать void QPainterPath::setFillRule(Qt::FillRule fillRule)

230
Как создать один массив из двух

Как создать один массив из двух

Заданы массивы А (n) и В (m)Сформировать массив С (n + m), элементами которого являются n элементов массива A, за которыми следуют m элементов массива...

236