简体   繁体   中英

curlopt_cookie doesn't seem to be working

This is my code:

$ch = curl_init('http://www1.macys.com/index.ognc');
curl_setopt($ch,CURLOPT_COOKIE,"shippingCountry=US; currency=USD");
curl_setopt ($ch, CURLOPT_COOKIEFILE, "C:/cookie-techenclave.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "C:/cookie-techenclave.txt");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);     // Follow redirects
curl_setopt($ch, CURLOPT_MAXREDIRS, 8);             // Limit redirections to four
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);     // Return in string

$pageString = curl_exec($ch);
curl_close($ch) ;

The 2 cookies I am attempting to set are not getting set. I tested this with netcat. This is the output captured by netcat.

D:\php\L.c.MSQL.E.T.DVD\EF\SQL> "D:\My Downloads\apps\nc111nt\nc.exe" -l -p 80
GET /beauty/index_template.php HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 5.1; U; en) Presto/2.10.229 Version/11.64
Host: localhost
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-x
bitmap, */*;q=0.1
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

As can be seen there is no cookie header in there. What am I doing wrong? What else can i try? I tried capturing and setting all the headers , but again the cookies I am attempting to set didn't have any effect.

Thanks

Don't use CURLOPT_COOKIE if you want curl auto update cookie's value base on server response. because request cookie will hardcoded to the value of CURLOPT_COOKIE. CURLOPT_COOKIEFILE and CURLOPT_COOKIEJAR will be ignored on this case.

And are you sure the provided network sniff is from the above PHP code? I don't see the USER_AGENT get set on the code but it's available on your sniff.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM