В идеале вы должны работать как на стороне клиента, так и на стороне сервера, и никогда ни того, ни другого.Если взглянуть на эти 3 сценария, то оба варианта являются единственным безопасным и удобным для пользователя способом:
Только на стороне клиента: как уже упоминалось, для обхода этих проверок не требуется много усилий, если кто-тохочет отправить искаженные данные на ваш сервер (например, SQL-инъекция).NoScript не запускает код проверки javascript, а некоторые браузеры позволяют пользователю активно изменять все загруженные javascript и html, поэтому пользователь может отсоединить проверочный javascript от элементов управления.
Только на стороне сервера: этотболее надежный, чем только для клиента, в конечном счете, но сокращает удобство для пользователя.Они должны отправить свою форму на сервер, проверить ее и получить страницу с ошибкой о том, что определенное поле недействительно.Что раздражает, так это то, что если какие-либо из этих полей были полями пароля, их значения по умолчанию не заполняются.Например, предположим, что пользователь неправильно ввел номер телефона в форму создания учетной записи.Когда сервер выкладывает страницу о том, как неправильный номер телефона, пользователь увидит это, исправит номер телефона и снова нажмет «отправить», просто чтобы получить еще одну страницу с ошибкой о том, что не введен пароль (и снова ввести его в течение второготекстовое поле), даже если это не было первоначальной проблемой.
Клиент и серверная часть: вы получаете безопасность проверки на стороне сервера, что-то, с чем пользователь будет сталкиваться с трудностями, и удобство для пользователяпроверка ввода без необходимости отправки страницы (независимо от того, выполняете ли вы проверку с помощью чисто локального javascript или AJAX).
Если вам абсолютно необходимо выбрать один из них, серверная сторона будет подходящим вариантом.Но вам никогда не придется выбирать одно или другое.