diff options
author | patdenice <patdenice@piwigo.org> | 2010-12-12 10:14:16 +0000 |
---|---|---|
committer | patdenice <patdenice@piwigo.org> | 2010-12-12 10:14:16 +0000 |
commit | 35be8d6461a2522c575eef92c0573b3c06d28b4b (patch) | |
tree | c74639d21b0652ee8fd669ce29c433bb003bf519 /admin | |
parent | f92ab95b10fdc4e14255792c7c46b1f53965da2e (diff) |
feature 2057: use http_build_query instead of add_url_params for GET data.
git-svn-id: http://piwigo.org/svn/branches/2.1@8089 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'admin')
-rw-r--r-- | admin/include/functions.php | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/admin/include/functions.php b/admin/include/functions.php index 15c057771..137778ce4 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -1707,7 +1707,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 = ''; @@ -1723,7 +1727,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); @@ -1747,10 +1751,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) @@ -1773,8 +1780,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"; |