Skip to content

Commit

Permalink
merge r8089 from branch 2.1 to trunk
Browse files Browse the repository at this point in the history
feature 2057: use http_build_query instead of add_url_params for GET data.

git-svn-id: http://piwigo.org/svn/trunk@8090 68402e56-0260-453c-a942-63ccdbb3a9ee
  • Loading branch information
patdenice committed Dec 12, 2010
1 parent 1b52605 commit 4448b8d
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions admin/include/functions.php
Expand Up @@ -1725,7 +1725,11 @@ function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_
// Initialization
$method = empty($post_data) ? 'GET' : 'POST';
$request = empty($post_data) ? '' : http_build_query($post_data, '', '&');
$src = add_url_params($src, $get_data, '&');
if (!empty($get_data))
{
$src .= strpos($src, '?') === false ? '?' : '&';
$src .= http_build_query($get_data, '', '&');
}

// Initialize $dest
is_resource($dest) or $dest = '';
Expand All @@ -1741,7 +1745,7 @@ function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_
if ($method == 'POST')
{
@curl_setopt($ch, CURLOPT_POST, 1);
@curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
@curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
}
$content = @curl_exec($ch);
$header_length = @curl_getinfo($ch, CURLINFO_HEADER_SIZE);
Expand All @@ -1765,10 +1769,13 @@ function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_
$opts = array(
'http' => array(
'method' => $method,
'content' => $request,
'user_agent' => $user_agent,
)
);
if ($method == 'POST')
{
$opts['http']['content'] = $request;
}
$context = @stream_context_create($opts);
$content = @file_get_contents($src, false, $context);
if ($content !== false)
Expand All @@ -1791,8 +1798,11 @@ function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_

$http_request = $method." ".$path." HTTP/1.0\r\n";
$http_request .= "Host: ".$host."\r\n";
$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
$http_request .= "Content-Length: ".strlen($request)."\r\n";
if ($method == 'POST')
{
$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
$http_request .= "Content-Length: ".strlen($request)."\r\n";
}
$http_request .= "User-Agent: ".$user_agent."\r\n";
$http_request .= "Accept: */*\r\n";
$http_request .= "\r\n";
Expand Down

0 comments on commit 4448b8d

Please sign in to comment.