PHP Curl не сохраняет куки с определенного сайта, но сохраняет от других - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь зайти на сайт через curl, когда я захожу на другие сайты, он работает нормально и сохраняет все куки в файл.Но когда я пытаюсь войти на эту конкретную страницу, она не сохраняется.Я также установил CURLOPT_COOKIESESSION в true.Файлы cookie сохраняются.Я должен упомянуть, что я использую его как функцию, а имя cookie является конкретным и не меняется.Но когда я захожу на любой другой сайт, он работает, сохраняет прямо в текстовый файл.Я также установил заголовки .. Пост запроса JSON и все в порядке.Сначала я захожу на сайт, но у них есть еще один шаг для входа, и без куки я не могу войти.Также мой ip не забанен, я могу войти обычным запросом

function curl($url, $post = "", $referer = "") {
        $cookie = "cookie.txt";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
        curl_setopt($ch, CURLOPT_ENCODING, '');
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
        curl_setopt($ch, CURLOPT_USERAGENT, "useragent");//This is a normal User Agent

        if ($post != "") {
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: */*', 'Connection: Keep-Alive', 'Origin: origin', 'Referer: '.$referer));
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        }
        $data = curl_exec ($ch);
        if (curl_error($ch))
            return curl_error($ch);
        if (curl_getinfo($ch)["http_code"] == 200)
            return $data;
}
...