Проблема с искажением $_POST

AmdY

Пью пиво
Команда форума
Проблема с искажением $_POST

Мне отсылают пост запрос со значением var=Uc58IZ+riEcAm2CqDR2/Dw==
В РНР я вывожу $_POST['var'] => Uc58IZ riEcAm2CqDR2/Dw==
Пропадает +
Подскажите в какую сторону копать.
 

AmdY

Пью пиво
Команда форума
нет, отправляют на c++
я пробовал с помощью gCurl отправлять, результат тотже
 

Baranov_Dron

Новичок
хм если не ошибаюсь то браузер до отправления данных выполняет encode, а php выполняет автоматически decode метод.
если бы браузером мы отправляли данные, то получилось бы так было Uc58IZ+riEcAm2CqDR2/Dw==
encode браузером Uc58IZ%2BriEcAm2CqDR2%2FDw%3D%3D
decode php Uc58IZ+riEcAm2CqDR2/Dw==
А у Вас
отправлено Uc58IZ+riEcAm2CqDR2/Dw==
decode php Uc58IZ riEcAm2CqDR2/Dw==
Следовательно нужно как то запретить выполнять decode, обратная процедура encode выдаёт нам Uc58IZ+riEcAm2CqDR2%2FDw%3D%3D, но нам это не нужно...
Или на си выполнять функцию аналогичную в php http://ru2.php.net/manual/ru/function.urlencode.php перед отправкой данных!
 

berkut

Новичок
по идее, + должен менятся на пробел, но тут его нет

-~{}~ 13.04.08 23:44:

у меня как и положено, на этой строке плюс меняется пробелом.
 

AmdY

Пью пиво
Команда форума
ой, да. там действительно пробел.
У меня есть кое-какие решения как чинить его, но это костыль.
правильно сделать так, чтобы данные отсылались правильно.
 

Baranov_Dron

Новичок
ну правильно будет в программе на C++ перед отсылкой данных применить метод encode! или нельзя C++ трогать?
 

AmdY

Пью пиво
Команда форума
насколько я понимаю, примерно так и делают, но это специфичный символ. там делается примерно так urlencode( base64encode( dataencode() ) )
вопрос больше даже сишный нежели для рнр, а в си я полный нуб и немогу программисту ничего посоветовать, тем более что на РНР отсылаю такой же кривой запрос.

-~{}~ 14.04.08 16:03:

Пока решил тупо делать замену пробела на +, но боюсь появления ещё похожих аномалий, может кто знает что почитать на эту тему?
 

dimagolov

Новичок
AmdY, смотри камменты к base64, там аж 3 символа которые требуют кодирования и проще их просто менять на те, которые его не требуют...
 
Сверху