我试图通过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没有任何复杂性的提示/指南
答案 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);