проверка формы с помощью JavaScript против PHP - PullRequest
22 голосов
/ 13 ноября 2009

Почему я должен использовать JavaScript для проверки формы, когда мне все еще нужно использовать PHP, поскольку у пользователя может быть отключена поддержка JavaScript.

Разве это не нужно?

Обновление:

Хорошо, спасибо за ваши ответы. это звучит как хорошая идея, чтобы иметь его на стороне клиента тоже. Где я могу скачать хорошие проверки JavaScript?

Знаете ли вы, где я могу загрузить такой скрипт проверки в Yahoo, когда вы регистрируете учетную запись?

Ответы [ 8 ]

45 голосов
/ 13 ноября 2009

Проверка Javascript позволяет вашему пользователю быть проинформированным о любых ошибках до отправки формы на сервер. Это экономит раздражающие перезагрузки страницы (поскольку при отправке JS ловит событие и проверяет форму, предотвращая отправку формы при обнаружении ошибок) и сводит к минимуму вероятность повторного ввода информации снова (и снова, и снова ... ) или оставив до заполнения формы должным образом. Проверка JS не является заменой проверки на стороне сервера (поскольку пользователь может видеть JS, и, сохраняя страницу и внося поправки в JS, делает все, что хочет); но для них это удобно.

Это просто часть концепции прогрессивного улучшения, согласно которой JS предоставляет механизм для улучшения взаимодействия с пользователем, если он там и включен, и, надеюсь, делает его взаимодействие с вашим сайтом приятным или, по крайней мере, минимальным раздражающий.

<ч /> Отредактировано в ответ на вопрос OP относительно «где загрузить инструмент проверки JS».

Хотя я не могу - обязательно - рекомендовать какую-либо одну библиотеку (я, как правило, пишу свою собственную по мере необходимости или заимствую из ранее написанных самих примеров), Поиск в Google выкинул эти опции:

7 голосов
/ 13 ноября 2009

Вы должны ВСЕГДА проверять в PHP на СТОРОНЕ СЕРВЕРА, а проверка в JavaScript является проверкой СТОРОНЫ КЛИЕНТА для пользователя УДОБСТВО. Благодаря проверке на клиенте пользователь может найти ошибки в своей форме без перераспределения страниц. Но пользователь может отправить данные формы без проверки скрипта данных (например, он может не иметь поддержки JS в веб-браузере), поэтому всегда проверяйте на стороне сервера.

3 голосов
/ 28 декабря 2009

Я рекомендую вам использовать унифицированную проверку на стороне сервера и на стороне клиента, используя платформу, поскольку это может избежать сопоставления пользователя с данными, действительными на стороне клиента, но отклоненными сервером, или наоборот (сторона клиента слишком ограничена). Следующий список фреймворков дает информацию о проверке на стороне сервера / клиента: http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

3 голосов
/ 13 ноября 2009

... вежливости по отношению к пользователям. Облегчает жизнь обычным пользователям, которые время от времени просто совершают человеческие поступки.

1 голос
/ 02 февраля 2011

Да, рекомендуется проверять вводимые пользователем значения как с клиентской, так и с серверной стороны,

В некоторых случаях клиент был отключен JavaScript или мобильный браузер, который не поддерживает JavaScript, помните, что есть также спаммеры.

1 голос
/ 13 ноября 2009

Вопрос в том, хотите ли вы, чтобы ваша форма (и веб-сайт в целом) была интерактивной, удобной для пользователя или нет. Вы можете просто позволить на стороне сервера выполнять проверки и выдавать ошибку пользователям, но это будет менее интерактивным и менее удобным для пользователя, чем предупреждение пользователей перед отправкой формы (хотя вам все равно нужно проверить входные данные на сервере). -без ни на что). Просто мои 2 цента: P

0 голосов
/ 22 октября 2013

На мой взгляд, только проверка на стороне клиента при вводе формы не работает из-за безопасности. Представьте, что вы хотите проверить пароль пользователя (если "yourpwd" == userinput), с помощью js пользователь увидит пароль, потому что он находится в исходном коде браузера. С php его не видно, потому что php по какой-то причине скрыт.

0 голосов
/ 26 августа 2011

Я рекомендую использовать Javascript для клиентской стороны и Php для серверной части. Это сделает взаимодействие или дружественный пользователю сайт и уменьшит загрузку страницы много раз в случае, если пользователь отправит неверные данные

...