PHP CURL脚本运行但它没有设置cookie

时间:2015-01-14 06:12:22

标签: php curl cookies

我试图通过PHP CURL设置一个cookie超过二十四小时无效。

在我在浏览器中设置Cookie之前,将它们作为参数添加到网址中,如下所示

http://localhost/setc.php?userid=123&panelid=1

但现在我需要在运行脚本时设置cookie(setcookie.php)

下面是我尝试的各种类型代码的最新版本。

setcookie.php

$c = curl_init('http://localhost/atst.php?userid=628929&panelid=1');

curl_setopt($c, CURLOPT_VERBOSE, 1);
curl_setopt($c, CURLOPT_COOKIE, 'userid=123; panelid=1');
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($c);
curl_close($c);

它仍然没有创建cookie,任何人都可以帮忙

P.S:如果你们不能解决这个问题至少给我一个关于如何设置一个简单的cookie没有任何复杂性的提示/指南

1 个答案:

答案 0 :(得分:0)

只有在使用curl_close($ ch)关闭卷曲手柄时才会保存cookiejar。

从手册:

CURLOPT_COOKIEFILE包含cookie数据的文件的名称。 cookie文件可以是Netscape格式,也可以是转储到文件中的普通HTTP样式的标头。如果名称为空字符串,则不会加载cookie,但仍会启用cookie处理。

CURLOPT_COOKIEJAR用于在句柄关闭时保存所有内部Cookie的文件名,例如在致电curl_close之后。

http://www.php.net/manual/en/function.curl-setopt.php

$ckfile = tempnam ("/tmp/", "CURLCOOKIE");
        $BASEURL='http://localhost/openx/www/api/json/index.php/main/authenticate/';
        $POSTFIELDS='username='.$username.'&password='.$password.'';
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookieFileName");
        curl_setopt($ch, CURLOPT_URL,'http://localhost/openx/www/api/json/index.php/main/authenticate/');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $POSTFIELDS);

        ob_start();      // prevent any output
        $result=curl_exec ($ch); // execute the curl command
        ob_end_clean();  // stop preventing output

        $result = curl_exec($ch);
            curl_close($ch);