我得到了開放的curl會話,它設置了cookie文件,所以它會記住會話ID(從登錄)。但是,我現在如何修改這些cookie?PHP Curl - 修改cookie而不是添加新的
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Cookie:blabla=bleble'));
似乎不正確的行爲,因爲它增加了一個Cookie
頭,所以例如如果我請求頭之間有:
...
Cookie:blabla=uhuhu;tralala=ahahaha
...
我運行此:
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Cookie:blabla=bleble'));
它將簡單地添加具有相同變量但具有不同值的另一個Cookie
標題:
...
Cookie:blabla=uhuhu;tralala=ahahaha
...
Cookie:blabla=bleble
那麼如何修改現有的Cookie而不是添加其他Cookie
標題?
例如,當我登錄到網站,保持會話cookie文件,並在第二個請求想取代它,我得到這樣的事情(被髮送):
當CURLOPT_HTTPHEADER
curl_setopt($curl, CURLOPT_HTTPHEADER, 'Cookie: 46db1eb1/sessid=blabla; 46db1eb1/zoom-accessibility=small');
POST /sysbus/NeMo/Intf/data:setFirstParameter HTTP/1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Host: 192.168.1.1
Accept: */*
Cookie: 46db1eb1/sessid=YHGDba31faykfyTJraQMewP+
Content-Type:application/x-sah-ws-1-call+json; charset=UTF-8
X-Context:n1psjUEjqs5j7Bb5vvT0J3wXMunQ2e8c3ksb5Uikcdt9Ct1XOJUmAh8azkOqmMqe
X-Prototype-Version:1.7
X-Requested-With:XMLHttpRequest
Referer:http://192.168.1.1/advConfigAccessType.html
Cookie:46db1eb1/sessid=blabla; 46db1eb1/zoom-accessibility=small
Content-Length: 73
正如你所看到的 - 餅乾一倍。
當與CURLOPT_COOKIE
curl_setopt($curl, CURLOPT_COOKIE, '46db1eb1/sessid=blabla; 46db1eb1/zoom-accessibility=small');
POST /sysbus/NeMo/Intf/data:setFirstParameter HTTP/1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Host: 192.168.1.1
Accept: */*
Cookie: 46db1eb1/sessid=FHjCFhn/VKgkC09y7772fXpp; 46db1eb1/sessid=blabla; 46db1eb1/zoom-accessibility=small
Content-Type:application/x-sah-ws-1-call+json; charset=UTF-8
X-Context:VCtJDc4PrVjybyFcw8jGAc3anO5mXm7GPnfgn8VES54TqwUKr4fP68PhJHtuSn2x
X-Prototype-Version:1.7
X-Requested-With:XMLHttpRequest
Referer:http://192.168.1.1/advConfigAccessType.html
Content-Length: 73
值以相同的cookie頭一倍替換。
捲曲7.26.0,Raspbian(Debian的7.8)
哪個系統?我無法在Mac上使用PHP 5.5和curl 7.37來複制它。7.37 –
也在Ubuntu上使用PHP 5.5 + curl 7.35進行了測試 - 最後一個'curl_setopt'覆蓋了以前的cookie頭文件 –
curl 7.26.0(arm-unknown-linux-gnueabihf)libcurl/7.26。在Raspbian(Debian 7.8)上,OpenSSL/1.0.1e zlib/1.2.7 libidn/1.25 libssh2/1.4.2 librtmp/2.3。你確定它覆蓋它嗎?你是否從網站獲取cookie,而不是第一次手動設置它? –