Bug #62942 [Opn]: Setting CURLOPT_COOKIE with curl_setopt_array problem

From: Date: Thu, 15 Nov 2012 05:55:20 +0000
Subject: Bug #62942 [Opn]: Setting CURLOPT_COOKIE with curl_setopt_array problem
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-9132@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=62942&edit=1 ID: 62942 Updated by: pierrick@php.net Reported by: ben at blinkmobile dot com dot au Summary: Setting CURLOPT_COOKIE with curl_setopt_array problem Status: Open Type: Bug -Package: cURL related +Package: Documentation problem PHP Version: 5.3.16 Block user comment: N Private report: N New Comment: As mentioned by Laruence, this is not a bug, cookie_*** options are exclusive and libcurl don't report this kind of error so that we can report it on the user space. To be documented Previous Comments: ------------------------------------------------------------------------ [2012-08-27 03:59:50] ben at blinkmobile dot com dot au Thanks Laruence. Is this documented anywhere? I couldn't find it. Also, it appears that curl_setopt isn't enforcing the exclusivity. The following 2 tests both attach $cookies fine on PHP 5.3.15: $cookies = 'a=b'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://...'); curl_setopt($ch, CURLOPT_COOKIE, $cookies); curl_setopt($ch, CURLOPT_COOKIEFILE, ''); curl_setopt($ch, CURLOPT_COOKIEJAR, ''); curl_setopt($ch, CURLOPT_HEADER, true); curl_exec($ch); curl_close($ch); $cookies = 'a=b'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://...'); curl_setopt($ch, CURLOPT_COOKIEFILE, ''); curl_setopt($ch, CURLOPT_COOKIEJAR, ''); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_COOKIE, $cookies); curl_exec($ch); curl_close($ch); I notice that the curl library between my tests was upgraded from 7.19.7 to 7.24.0. Perhaps it was this and not https://bugs.php.net/bug.php?id=61948 ? If there is documentation for this exclusivity it would be good to include a link here and on http://au2.php.net/manual/en/function.curl-setopt.php and http://au2.php.net/manual/en/function.curl-setopt-array.php because people's existing (however incorrect) code might break when they upgrade PHP or CURL. ------------------------------------------------------------------------ [2012-08-27 02:55:28] laruence@php.net it's not a bug, cookie_*** options are exclusive ------------------------------------------------------------------------ [2012-08-27 01:53:39] ben at blinkmobile dot com dot au Description: ------------ Setting CURLOPT_COOKIE with curl_setopt_array must be done before setting CURLOPT_COOKIEFILE or CURLOPT_COOKIEJAR. I'm not sure if this is a bug, however I can't find documentation explaining that when using curl_setopt_array you need to set options in a particular order. It was working in PHP 5.3.13, however fails in 5.3.14 + 5.3.15 A change that could have caused this is https://bugs.php.net/bug.php?id=61948 Test script: --------------- $cookies = 'a=b'; // the following correctly attaches $cookies in PHP 5.3.13 but not PHP 5.3.14+ $options = array( CURLOPT_URL => 'http://...', CURLOPT_COOKIEFILE => '', CURLOPT_COOKIEJAR => '', CURLOPT_HEADER => true, CURLOPT_COOKIE => $cookies, ); $ch = curl_init(); curl_setopt_array($ch, $options); curl_exec($ch); curl_close($ch); // the following attaches $cookies correctly for all versions I have tested $options = array( CURLOPT_URL => 'http://...', CURLOPT_COOKIE => $cookies, CURLOPT_COOKIEFILE => '', CURLOPT_COOKIEJAR => '', CURLOPT_HEADER => true, ); $ch = curl_init(); curl_setopt_array($ch, $options); curl_exec($ch); curl_close($ch); ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=62942&edit=1

« previous php.doc.bugs (#9132) next »