我试图让它使用保存的cookie,而不是每次访问该站点时都记录。重复使用cookie cURL PHP
<?php
$uid = $_GET['uid'];
$ch = curl_init();
$cookie_file = dirname(__FILE__) . '/cookie.txt';
curl_setopt($ch, CURLOPT_URL, "http://www.forum.net/member.php?action=do_login");
curl_setopt($ch, CURLOPT_REFERER, "http://www.forum.net/member.php?action=login");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5");
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, '/cookie.txt');
curl_setopt($ch, CURLOPT_POSTFIELDS, "username=USERNAME&password=PASSWORD");
$exec = curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, "http://www.forum.net/reputation.php?uid=" . $uid . "&page=1");
$exec = curl_exec($ch);
echo $exec;
?>
它不会让我重复使用的cookie,出于某种原因,而是它只是记录我该cookie.txt文件中包含该cookie的东西。
您同时设置'CURLOPT_COOKIEJAR'和'CURLOPT_COOKIEFILE'两次,而最终的结果将是不同的值。 '/ cookie.txt'将把文件存储在系统根目录下,并且'dirname(__ FILE__)。 '/ cookie.txt'会将文件存储在与当前正在执行的脚本相同的目录中。确保你只设置每个选项一次,具有相同的值(可能是后者)。 – DaveRandom
好吧,我将CURLOPT_COOKIEJAR和CURLOPT_COOKIEFILE设置为:dirname(__ FILE__)。 '/cookie.txt' - 但是,它不会工作。用新代码更新OP。 – MortenMoulder
可能的重复http://stackoverflow.com/questions/12885538/php-curl-and-cookies/ – ChrisF