PHP Curl不会从特定网站保存cookie,而是从其他网站保存

时间:2018-10-09 15:31:10

标签: php php-curl

我尝试通过curl登录到另一个网站时,它可以正常工作并将每个cookie保存到文件中。但是,当我尝试登录到此特定页面时,不会保存它。我也将CURLOPT_COOKIESESSION设置为true。 Cookie文件正在保存。我必须提到,我将其用作函数,cookie的名称是特定的,不会改变。但是,当我访问其他网站时,它可以直接保存到txt文件中。我还设置了HEADERS。 请求发布是json,一切都很好。我先登录该网站,但他们还有另一步登录,没有Cookie我就无法登录。 另外我的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;
}

0 个答案:

没有答案