Я программирую CGI-скрипт на C ++, где я получаю пост-данные от клиента
Если у меня есть пост-данные, как это
sam=1&sam2=3&sam5=65
Какие шаги для анализа параметров, где я буду помещать каждую пару в объект карты в C ++?
Я думал о разделении значений по&’в векторный массив, затем разделяя каждую запись в векторном массиве с помощью’ = ‘и помещая их в объект карты, как вы думаете? Также я хочу знать, что я могу сделать, чтобы справиться с искаженными данными.
У вас есть первые два правильных шага. Разделите пары имя / значение на &
и отделить имя от значения на =
, Но тогда ты должен Декодирование URL имя и URL декодируют значение перед тем, как вставить их в карту.
Например, +
в имени или значении следует заменить на пробел. %2B
должен быть заменен пробелом. %3D
со знаком равенства.
Что касается искаженных почтовых данных, то от вашего приложения будет зависеть, что вы считаете некорректным. Вы, вероятно, должны проверить на неоднозначное значение, как x=2=3
, Является ли значение 2=3
или же 3
? И вы можете проверить на отсутствие имени, как =3
или просто 3
,
Но остальное зависит от специфики того, что законно в вашей конкретной заявке.
Других решений пока нет …