You cannot get whole data with $_POST? Did you verified with encoded data?
-- Yasuo [EMAIL PROTECTED] wrote: > ID: 14321 > User updated by: [EMAIL PROTECTED] > Reported By: [EMAIL PROTECTED] > Status: Bogus > Bug Type: Variables related > Operating System: i686-gnu-linux > PHP Version: 4.1.0 > Old Assigned To: sterling > Assigned To: > New Comment: > > Ok, I tried $HTTP_RAW_POST_DATA. > The result of "echo rawurlencode($HTTP_RAW_POST_DATA);" is : > ##### > --curl0m0Kw3o0o1CufhI8a%2BHAFaguSrD%0D%0A > Content-Disposition%3A%20form-data%3B%20name%3D%22BinaryData%22%0D%0A%0D%0A > A%00B%0D%0A > --curl0m0Kw3o0o1CufhI8a%2BHAFaguSrD--%0D%0A > ##### > So it seems that PHP receives the data (A%00B) correctly. > But why doesn't $_POST reveal the same data ? > Is there something wrong with reassembling the data > of the post in PHP (maybe in rfc1867.c) ? > Or is there another way of getting the data w/o the rfc1867 stuff (e.g. boundaries) >besides "$_POST" ? > > Hanno > > Previous Comments: > ------------------------------------------------------------------------ > > [2001-12-13 06:45:23] [EMAIL PROTECTED] > > Try $HTTP_RAW_POST_DATA. Encode data with base64 or like when you print, if there is >null char in data. Then you should be able to deal with. > > ------------------------------------------------------------------------ > > [2001-12-13 05:31:15] [EMAIL PROTECTED] > > Sorry, this is not a bogus. > I wish it was. Obviously Sterling got me completely wrong. > It's not a problem of printing binary data. > As I do not use curl with PHP this bug is NOT Curl related it's more in the >receiving end. > What I'm doing is posting binary data using > libcurl with c++. > In this example it's a buffer containing A,chr(0) and B. > Network traces show the following: > ######## > POST /test.php HTTP/1.1. > Pragma: no-cache. > Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*. > Content-Length: 130. > Content-Type: multipart/form-data; boundary=curl/49TVuznugm1TDG2p68EyKJrXOq. > . > --curl/49TVuznugm1TDG2p68EyKJrXOq. > Content-Disposition: form-data; name="BinaryData". > . > A.B. > --curl/49TVuznugm1TDG2p68EyKJrXOq--. > ######## > I hope everybody agrees that the post is ok and that > it's containing 3 byte of data (A,chr(0) and B). > So I do not present the C++ code here, as it is obviously not relevant. > On the PHP side I check the received data with: > ######## > echo "POST: "; > print_r($_POST); > //and just to make sure print_r is binary safe... > $foo="X".chr(0)."Z"; > print_r($foo); > ######## > the result is: > ######## > POST: Array > ( > [BinaryData] => A > ) > X.Z > ######## > So everything following "A" including chr(0) has been truncated. > Again this problem has been mentioned on 2001-06-16 by [EMAIL PROTECTED] in >bug report #11516. > > Additionally if I change the name of the post variable to > ### > name="BinaryData" filename="foo" > ### > to trick PHP into believing it's a ordinary file post > the received file contains all the 3 bytes. > This should prove that the post itself is ok. > Tell me if you want me to present the c source code or > do some different kind of testing. > Tests were done with PHP 4.1.0 and the latest CVS version. > Hanno > > > ------------------------------------------------------------------------ > > [2001-12-03 09:36:46] [EMAIL PROTECTED] > > a) not a cURL related bug report > b) bogus, when you print binary data, expect it to be truncated at the NULL, this is >the same in every language. > > ------------------------------------------------------------------------ > > [2001-12-03 06:23:56] [EMAIL PROTECTED] > > Assigning to sterling, the cURL master. > > Derick > > ------------------------------------------------------------------------ > > [2001-12-03 06:22:04] [EMAIL PROTECTED] > > This one is related to the report of [EMAIL PROTECTED] (Bug id #11516). > I talked to sniper about this problem a year ago, but I could not convince him that >this behaviour of PHP to truncate post variables at the first occurrance of 0x00 >exists and that it's incorrect (when used with multipart-formdata). Some days ago I >used libCURL with C++ to post binary data with the "CURLFORM_PTRCONTENTS" option >which lead to the same problem. Packet-sniffing revealed that the data is sent >correctly, but PHP truncates the variable at the first occurance of 0x00. I had a >discussion with Daniel Stenberg (Curl-developer) on that topic. He agreed that >following RFC1867 it is allowed to send binary data in the way jeroen describes and >he was pretty much suprised that PHP causes such problems. As the function >curl_formadd() and "CURLOPT_POSTFIELDSIZE" is not implemented in PHP I can not give >you a PHP script which produces the error but let me know if you're interested in an >example written in C++. I would appriciate very much if this bug could be removed in >futur e versions of PHP. > thanks in advance > Hanno > > > > > ------------------------------------------------------------------------ > > > > Edit this bug report at http://bugs.php.net/?id=14321&edit=1 > > -- Yasuo Ohgaki -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]