This is actually not a solution as is not solving Dirk's problem. The 'A' will make the isset($_POST['data']) to be always true. Another thing is that the $_POST['data'] is still not containing the binary code that is expected as the PHP will get the & and will start a new variable

A solution will be the base64_encode() which is the safest way to transport binary data over the net. Another one will be a simple rawurlencode() which is supposed to solve exactly this problem and on the server you shouldn't do any decode after. However I can't grant you that your binary will correctly survive.



----------------------------
Cristian MARIN - [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
Developer Designers Department
InterAKT Online (www.interaktonline.com <http://www.interaktonline.com>


Dan Baker wrote:
"Dirk Vanden Boer" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
Hi,

I have a C++ application that posts binary data to a php script that I created using libcurl. Everything works fine except when my binary data happens to start with the '&' symbol. In that case I can't read the http post data (isset returns false).

The post argument then looks like data=&ÑÚA
Reading the post is done like this:
if (isset($_POST['data'])
Is there a way to fix this problem?

A quick-n-dirty method is to prepend a known letter to the data, like an "A":
data=A&ÑÚA
Then, ignore the first character of the data, since it is known to be the "A" character.

I would think that if the data contains an "&" in the middle of the data, you may not be getting all the data.
"data=ABC&xyz=123"
$_POST['data'] = "ABC"
$_POST['xyz'] = "123"

DanB

Reply via email to