wcb-falcon
Новичок
Помогите правильно собрать последовательность кодирований для передачи и декодирований для чтения
есть форма (очень большая объектов на 500)
в одно из полей вводим следующий набор символов
после чего пишу значение в базу
При прочтении получаем строку вида
а также добавлены символы \ которые мы не вводили
Для дальнейшей разборки использую
и дальше пытаюсь заного разобрать строку в массив для подстановки всех данных в свои поля и избавиться от лишних символов
Тем самым добиваюсь того что попытка записи строки вида
Прошу помощи у знатоков.
есть форма (очень большая объектов на 500)
в одно из полей вводим следующий набор символов
после заполнения делаю обработку на javascript (jquery)абв "asd" <asd> asd / asd / asd "asd" / "zячс13ячс" `1234567890-~!@#$%^*()_/*-{}[]|":;'\/.,+&=
Пример заполнения одного поля в этом случае выглядет такstr = decodeURIComponent(form.serialize());
эту переменную передаю с помощью ajax (методом post) в обработку файла на php в котором данные дополнительно кодируюабв+\"asd\"++asd+/+asd+/+asd+\"asd\"+/+\"zячс13ячс\"+`1234567890-~!@#$%^*()_/*-{}[]|\":;\'\\/.,+&=
PHP:
$answer = base64_encode($str);
При прочтении получаем строку вида
Где уже видно что потеряны символы & и =string(122) "terredenici=абв+\"asd\"++asd+/+asd+/+asd+\"asd\"+/+\"zячс13ячс\"+`1234567890-~!@#$%^*()_/*-{}[]|\":;\'\\/.,+"
а также добавлены символы \ которые мы не вводили
Для дальнейшей разборки использую
PHP:
$post = base64_decode($line['answer']);
PHP:
$post = explode('&',$post);
$postnew = array();
foreach($post as $key=>$value){
$post2 = explode('=',$value);
$v = urldecode($post2[1]);
$v = str_replace(array("\""), '"', $v);
$v = str_replace(array("'"), '"', $v);
$v = str_replace(array("\\"), '/', $v);
$v = str_replace(array("//"), '/', $v);
$v = str_replace(array("/\""), '"', $v);
$v = str_replace(array("/""), '"', $v);
$postnew[$post2[0]] = $v;
}
$post = $postnew;
при прочтении дает результат видаабв "asd" <asd> asd / asd / asd "asd" / "zячс13ячс" `1234567890-~!@#$%^*()_/*-{}[]|":;'\/.,+&=
т.е. идет потеря всего 5 символовабв "asd" <asd> asd / asd / asd "asd" / "zячс13ячс" `1234567890-~!@#$%^*()_/*-{}[]|":;"//.,
точнее символ \ заменяется на / а символ ' заменяем на ", это в принципи устраивает но вот как мне всеже сделать так чтобы такие символы как + и = тоже присутствовали. (знак амперсенда не обязателен но если можно и его вернуть то былобы хорошо)'\+&=
Прошу помощи у знатоков.