Пилю форму, которая разбита на 5 секций. Эти секции подгружаются в форму аджаксом поочередно - юзер жмет "дальше", данные с текущей секции уходят на сервер, загружается следующая секция, текущая удаляется. Встал вопрос - где хранить данные пройденных секций? Я конечно могу сделать на странице какой-нибудь невидимый блок и писать туда сериалайзы данных JS-ом, но это как-то не безопасно. Что скажете по поводу хранения в сессии? Я никогда их особо не юзал. На телефонах такое будет работать вообще?
Мобильные браузеры тоже используют куки, поэтому будет конечно. Сами данные сессии хранятся на сервере, в куках - идентификатор сессии
Почитай про механизм сессии, поймешь, что сессии для клиента - это просто кука с айдишником. Не более того.
Ну, не хотелось бы, чтобы строка, которая потом будет уходить в $_POST, редактировалась как угодно на клиенте через HTML-инспектор. Будут пытаться всякие невозможные значения отправить, которых нет в форме. Проверка значений на валидность на стороне сервера есть конечно, но дыры это дело такое, никто их не пишет специально - могу и не отвалидировать что-нибудь по невнимательности. Добавлено спустя 4 минуты 7 секунд: Короче, как я понял, сессия это надежно и вроде бы кроссбраузерно. Можно хранить там данные, пока браузер не закрыт. Добавлено спустя 7 минут 35 секунд: У массива $_SESSION ведь размер не ограничен? Могу я делать тупо так на каждом шаге? Код (PHP): $step++; // я утрирую $_SESSION["myform_$step"] = $_POST;
Основная валидация только на сервере. Ибо кто тебе обещает, что запрос ты получишь исключительно с формы на страничке?
Дык сядь, подумай. Создай набор проверочных строк, заведомо опасных. Проверки на стороне клиента должны быть ДЛЯ клиента. Помогающими ему. Типа "ой, такие символы нельзя в нике юзать", "ой, вы не ввели то-то", "ой, вы ввели херню". Сервер они НИКАК не обезопасят. Если из миллиона найдется один, кто банально отключит JS, чтобы твоя проверялка сдохла, или состряпает запрос для бомбежки из консоли, тебе этого хватит, чтобы окуклиться. Один из миллиона и ты угоришь. Для безопасности надо проверять данные уже на сервере. Для залатывания дыр веди проверку не на наличие всех недопустимых знаков, а на наличие чего-то кроме допустимых. Белые списки всегда надежнее черных.