ID:               49066
 Updated by:       [email protected]
 Reported By:      peaceable_whale at hotmail dot com
 Status:           Verified
 Bug Type:         cURL related
 Operating System: *
 PHP Version:      5.*, 6SVN (2009-08-04)
 New Comment:

To be clear: without open_basedir it works fine.


Previous Comments:
------------------------------------------------------------------------

[2009-08-03 22:54:48] [email protected]

A bit more readable script:

<?php
error_reporting(E_ALL^E_WARNING);
$request=curl_init("http://example.com/X";);
curl_setopt_array($request,
        array(
                CURL_HTTP_VERSION_1_1  => true,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_FAILONERROR    => true,
                CURLOPT_RETURNTRANSFER=>true,
        )
);

var_dump(curl_exec($request));

?>

To reproduce:

# sapi/cli/php -n -dopen_basedir=. test.php




------------------------------------------------------------------------

[2009-07-26 16:16:22] peaceable_whale at hotmail dot com

The previous submitted code doesn't reflect the problem correctly...
The followings are the corrected information:

Description:
------------
CURLOPT_FAILONERROR does not work when CURLOPT_FOLLOWLOCATION is true
and open_dir is set.

PHP Version:
------------
PHP 5.3.0 NTS VC9

Reproduce code:
---------------
<?php
error_reporting(E_ALL^E_WARNING);
header("Content-Type: text/plain; charset=UTF-8");
header("X-Content-Type-Options: nosniff");
$request=curl_init("http://example.com/X";);
curl_setopt_array($request,array(CURL_HTTP_VERSION_1_1=>true,CURLOPT_USERAGENT=>"PHP/".phpversion(),CURLOPT_FOLLOWLOCATION=>true,CURLOPT_FAILONERROR=>true,CURLOPT_RETURNTRANSFER=>true));
echo (curl_exec($request)===false?"false":"true")."\r\n";
curl_close($request);
?>

Expected result:
----------------
false

Actual result:
--------------
true)

------------------------------------------------------------------------

[2009-07-26 16:01:32] peaceable_whale at hotmail dot com

Description:
------------
CURLOPT_FAILONERROR does not work when CURLOPT_URL is reset. Not false
is returned even when the response code is >=400.

Reproduce code:
---------------
<?php
header("Content-Type: text/plain; charset=UTF-8");
header("X-Content-Type-Options: nosniff");
$request=curl_init();
curl_setopt_array($request,array(CURL_HTTP_VERSION_1_1=>true,CURLOPT_USERAGENT=>"PHP/".phpversion(),CURLOPT_FAILONERROR=>false,CURLOPT_RETURNTRANSFER=>true));
for($i=0;$i<5;$i++) {
        curl_setopt($request,CURLOPT_URL,"http://example.com/".$i);
        echo "Trial ".$i.":
".(curl_exec($request)===false?"false":"true")."\r\n";
}
curl_close($request);
?>

Expected result:
----------------
Trial 0: false
Trial 1: false
Trial 2: false
Trial 3: false
Trial 4: false

Actual result:
--------------
Trial 0: true
Trial 1: true
Trial 2: true
Trial 3: true
Trial 4: true


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=49066&edit=1

Reply via email to