我有一个正在使用登录到远程站点的PHP脚本,它运行良好。但是,它似乎只在指定的cookie文件被命名为cookie.txt时才起作用
我想要的是每个使用此脚本的人都有一个单独的cookie文件。因此,如果machineA上的某个人19日使用它,他们的cookie将位于/tmp/19/someNameCookie.txt之类的位置,machineB将具有/tmp/19/someOtherNamedCookie.txt,并且如果machineC在20日使用它,则它们将具有/tmp/20/someNamedCookie.txt。
有很多方法可以生成唯一命名的文件,但这里的关键是让它们工作。我在PHP知识方面非常年轻,并且对卷曲完全陌生。
另外,我也没有成功使用CURLOPT_FOLLOWLOCATION来获取登录导致的新页面。
谢谢。
这是一个代码发挥。从另一个来源得到了这个。
$username=urlencode($usr);
$password=urlencode($pass);
$url="http://domain.com/";
$cookie="cookie.txt";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie); // have tried with just the jar, and just the file and both
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
echo $result;
curl_close($ch);这是我之后要检查登录是否成功的代码
$ch2 = curl_init();
//curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch2, CURLOPT_COOKIEFILE, $cookie);
curl_setopt ($ch2, CURLOPT_URL, "http://domain.com/");
$r = curl_exec($ch2);
echo $r;
curl_close($ch2);根据我的理解,如果curl不存在,应该创建cookie文件。我也试着手动创建其他文件,并通过脚本使用fopen,但仍然只能在我使用cookie.txt时起作用,现在它全部保存到public_html中进行测试。