После того, как пользователь ввел все данные в форму (ФИО, адрес, email, продукт, количество и т.п.) и нажал на кнопку "Отправить", существует два способа развития событий:
- В javascript по кнопке "Отправить" для каждого из трех компонентов (kladr, efio и cemail) вызывается функция check(), которая осуществляет всю проверку на сервере.
- в случае неправильного результата, сами компоненты обводят соответствующие поля красной рамкой
- если результат правильный, задача разработчика написать код на js, который отправляет все данные (проверенные и те, которые не нужно проверять), введенные пользователем, куда ему нужно.
- По кнопке "Отправить" все данные отправляются в один php-файл, который создает классы компонентов efio, kladr и cemail уже на php, а не на javascript, как в предыдущем пункте. Задача разработчика в этом случае, написать код на php, который вызовет методы проверки efio, kladr и cemail, а также какие-то свои проверки, и пришлет отчет об успешности отправки.
Первый вариант проще для разработчика, потому что ему достаточно вставить компоненты в страничку, и они сами все проверяют. Но в этом случае у пользователя есть возможность сфальсифицировать данные в промежуток после проверки и до отправки на сервер. Поэтому нужно либо блокировать поля от изменения, пока идет проверка и отправка, либо поверх них выдавать div "Подождите", за которым ничего не видно.
Второй вариант грамотнее с точки зрения безопасности, но несколько сложнее в применении, поскольку разработчику придется встраивать вызовы проверки полей не в js, а в php, в который приходят все данные.
Предлагаю пока сделать первым вариантом, но несколько дней этот тикет будет открыт для обсуждения.