php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #75764 cUrl post large data goes wrong
Submitted: 2018-01-05 10:16 UTC Modified: 2018-02-09 15:27 UTC
From: peter at grootplezier dot nl Assigned:
Status: Closed Package: cURL related
PHP Version: 7.2.1 OS: Windows
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: peter at grootplezier dot nl
New email:
PHP Version: OS:

 

 [2018-01-05 10:16 UTC] peter at grootplezier dot nl
Description:
------------
Tested with: PHP 7.1.10 and curl 7.56.0
The script works with curl 7.54.0 correctly.
Works in the newest curl version. But this is still not implemented in the Windows version of PHP.



Test script:
---------------
<?php

//generate string data
function getStr($num) {

  $bstring = 'abcdefghijklmnopqrstuvxyz0123456789';
  $str = '';

  for($i = 0; $i < $num; $i++) {

    $str .= $bstring;

  }

  return $str;

}

$json = [
  'json1' => getStr(200),
  'json2' => getStr(200),
  'json3' => getStr(200),
  'json4' => getStr(200),
];

$post = [
  'test1' => 'a',
  'test2' => 'b',
  'test3' => 'c',
  'test4' => json_encode($json) //or use print_r or var_dump with return parameter
];

$ch = curl_init();

//send encoded json-data to service

curl_setopt($ch, CURLOPT_URL, 'https://localhost/service.php');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec ($ch);

curl_close($ch);

var_dump($result);

?>

service.php
--------------------------------------------------------------------------------------
<?php

//get the post data and write into request.log

$result = file_put_contents('request.log', print_r($_REQUEST, true));
var_dump($result);

//the content of $_REQUEST is wrong, json1 is repeated, content is cutted off
//expected result: correct content in $_REQUEST

?>


Expected result:
----------------
Correct post data in $_REQUEST.

Actual result:
--------------
the content of $_REQUEST is wrong, json1 is repeated, content is cutted off, the post data is corrupt

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2018-01-12 16:17 UTC] ab@php.net
-Status: Open +Status: Feedback
 [2018-01-12 16:17 UTC] ab@php.net
Thanks for the report. Please check a latest snapshot. Be sure it's a one with libcurl 7.57.0.

Thanks.
 [2018-02-09 12:32 UTC] ab@php.net
-Status: Feedback +Status: Duplicate
 [2018-02-09 12:32 UTC] ab@php.net
See bug #75597.

Thanks.
 [2018-02-09 15:27 UTC] peter at grootplezier dot nl
-Status: Duplicate +Status: Closed
 [2018-02-09 15:27 UTC] peter at grootplezier dot nl
Thanks for the fix.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun May 05 22:01:29 2024 UTC