破坏CURL登录功能制作的cookie?

时间:2011-11-13 23:36:11

标签: php curl

我有一个简单的功能,我习惯使用curl和php远程登录其他网站 这是函数

public function Curllogin($url,$data,$proxy,$proxystatus)
    {
        $login = curl_init();
        curl_setopt($login, CURLOPT_COOKIEJAR,$this->SetCookieFile);
        curl_setopt($login, CURLOPT_COOKIEFILE,$this->SetCookieFile);
        curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
        curl_setopt($login, CURLOPT_TIMEOUT, 40);
        curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
        if ($proxystatus == 'on') {
            curl_setopt($login, CURLOPT_SSL_VERIFYHOST, FALSE);
            curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, TRUE);
            curl_setopt($login, CURLOPT_PROXY, $proxy);
        }
        curl_setopt($login, CURLOPT_URL, $url);
        curl_setopt($login, CURLOPT_HEADER, TRUE);
        curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($login, CURLOPT_POST, TRUE);
        curl_setopt($login, CURLOPT_POSTFIELDS, $data);
        ob_start(); // prevent any output
        return curl_exec ($login); // execute the curl command
        ob_end_clean(); // stop preventing output
        curl_close ($login);
        unset($login);
    }

它的工作没有问题登录 但是我发现了一个小问题 让我说我登录到example.com并在$ data变量中传递用户名和密码 它会登录没有问题 但是当使用另一个用户名和密码更改$ data值时,它会使用用于上次登录的旧用户名和密码登录 忽略新的登录信息 我尝试删除cookies.txt文件并让脚本重新创建它 我甚至试图清除我的浏览器缓存的cookie 但它不会改变它来使用新数据 每次使用我用来登录的第一个用户名和密码 是否有任何功能来破坏CURL制作的cookie或者我错过了什么?

1 个答案:

答案 0 :(得分:0)

只需将$this->SetCookieFile更改为空文件,可能是临时目录中的随机文件。您的“真实”浏览器的cookie与此无关,cURL与此分开管理cookie。