Перевірка і захист даних даних
Звичайно, перевірка даних, введених користувачем в форму і переданих PHP скрипту безумовно повинна мати місце безпосередньо в самому PHP скрипт, щоб користувач помилково не ввів некоректні дані, або не зробив цього навмисно для провокації помилки виконання скрипта. Але, давайте уявимо, що у нас сайт з дуже високою відвідуваністю, припустимо, 10000 візитів на добу і кожен користувач вводить дані в форму і відправляє її на сервер. Припустимо, 50 відсотків користувачів не заповнюють частину полів або заповнюють їх некоректно. Дані передаються скрипту, перевіряються, і форма повертається користувачеві для виправлення помилок. У нашому випадку, при великій кількості користувачів це створить зайве навантаження на сервер і зайвий трафік як для сервера, так і для користувачів.
Усунення проблем при захисті даних
перший приклад
Отже, візьмемо для прикладу таку форму (обов'язковими для заповнення ми визначимо ім'я користувача (sender) і текст повідомлення (msg), так як Email або ICQ у користувача може просто не бути):
Тепер будемо визначати правила, за якими будуть перевірятися окремі поля.
Ім'я відправника (sender) - не порожнє, не коротші, припустимо, 3-х символів, не довше 20.
Номер аськи (ICQ) - якщо вказано, то складається тільки з цифр, не коротші 5 і не довше 9 знаків.
Розмістимо частина ява-скрипта прямо в тезі поля для введення номера ICQ - таке обмеження дозволить користувачеві вводити в це поле тільки цифри
* В Firefox 2.1 і нижче даний скрипт не працює.
Далі необхідно перевірити довжину введеного номера
Текст повідомлення (msg) - не порожнє і, припустимо, не менше 10 символів
Другий спосіб захисту від поганих даних
Тепер до полів обов'язковим для заповнення додаємо:
Тепер визначимо функцію checkreq ()
Тепер «зберемо» окремі блоки, призначені для перевірки конкретних полів в одну функцію, а до форми додамо процедуру, яка буде викликати цю функцію перед відправкою форми PHP скрипту.
Тепер при спробі користувача відправити форму PHP скрипту, управління передається спочатку ява-скрипта, який повертає FALSE якщо буде знайдена хоч одна помилка користувача, курсор буде поміщений в поле, що містить помилку (перше за рахунком), і форма просто не буде відправлена.
висновок
Додаткова інформація по темі
Як отримати роботу на біржі фрілансу володіючи навиками перекладача і грамотною мовою викладу
Опис способів і методів створення безпечних для користувача форм засобами мови програмування PHP