使用curl登录到服务器端的表单,然后将cookie带回浏览器

时间:2014-04-06 21:51:55

标签: php cookies curl

我有以下代码正在执行HTTP / POST以登录Web表单。网站返回的Cookie存储在cookies.txt文件中。

$ch = curl_init();

$opts = array(
    CURLOPT_URL=> $projectUrl,
    CURLOPT_POST=> true,
    CURLOPT_FOLLOWLOCATION=> true,
    CURLOPT_RETURNTRANSFER=> true,
    CURLOPT_COOKIEJAR=> 'cookies.txt',
    CURLOPT_POSTFIELDS=> http_build_query($data),
);

curl_setopt_array($ch, $opts);

$ret = curl_exec($ch);

curl_close($ch);

我已确认登录成功(因为$ret的值是表单背后页面的内容。

接下来,我有一些代码可以解析curl编写的cookie文件,并为每个cookie执行set_cookie

据我所知,这只是PHPSESSION cookie。

$cookies = parseCookieFile('cookies.txt');
foreach($cookies as $c) {
    if(!setcookie($c["name"], $c["value"], $c["expires"], $c["path"], $c["domain"], $c["secure"])) {
        echo "ERROR: Could not write cookie {$c["name"]}<br />";
    }
}

我的希望是,在后端完成所有这些操作后,我将能够浏览到我登录的网站,它会检测会话cookie并传递给我。

不幸的是,事实并非如此。我刚回到登录表单。

为什么这不起作用会有一些愚蠢/明显的原因吗?

0 个答案:

没有答案