繁体   English   中英

无法通过CURL PHP保留会话ID

[英]Can't keep session ID via CURL PHP

我正在编写一个函数来获取验证码,当然它需要保留会话。 我正在使用cookie文件进行卷曲,并在每个请求中使用它,但是它不起作用。 查看cookie文件时,我看到每次调用该函数时PHPSESSID都会更改。 我该怎么解决?

这是我的代码

<?php    
function fetch_captcha($url, $cookie_file = false, $user_agent = DEFAULT_USER_AGENT, $timeout = 10) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_VERBOSE, true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

    if ($cookie_file) {
        curl_setopt($curl, CURLOPT_COOKIESESSION, true);
        curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_file);
        curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
    }
    curl_setopt($curl, CURLOPT_USERAGENT, $user_agent);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);

    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}

不要使用:

curl_setopt($curl, CURLOPT_COOKIESESSION, true);

PHPSESSID是一个会话cookie,此选项使每个cURL调用启动一个新会话,因此它将忽略文件中的所有会话cookie。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM