我試圖讓它使用保存的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