Чат PHP-разработчиков
Базы данных и веб-формы

Базы данных и веб-формы

Возможности обработки форм относятся к числу наилучших средств языка PHP. В основе решения всевозможных задач лежит использование языка HTML для создания форм ввода данных, языка PHP — для обработки данных, а сервера базы данных — для хранения данных.

В статьях "GET-запросы в PHP" и "Обрабатываем POST-запросы в PHP" мы уже рассмотрели как передаются данные формы серверу (с помощью методов GET и POST) и создали пару простых сценариев обработки форм без использования баз данных. В этой статье мы усложним примеры и добавим работу с базами данных, при этом нужно учитывать следующие сведения при обработке веб-форм:

  • Необходимо соблюдать исключительную осторожность при использовании любых данных, поступающих из веб-браузера посетителя. Может показаться, что такая рекомендация и без того очевидна, но на практике все еще встречается слишком много программ PHP, в которых не подвергаются проверке и очистке данные, поступающие из веб-форм или веб-браузеров (или тому подобных программных объектов). Никогда не используйте нефильтрованные данные в запросе к базе данных.
  • Следует всегда использовать атрибут name каждого элемента ввода данных (<input>, <select>, <textarea> и т.д.). Такие атрибуты name становятся именами ассоциативного массива (например, $_POST). Это означает, что в программе нельзя будет получить доступ к требуемым значениям, если для каждого элемента, хранящего значение, не задан атрибут name.
  • Атрибут name поля формы не обязательно должен совпадать с соответствующим именем поля базы данных.
  • Если в форме требуется отобразить данные, то можно задать значение атрибута value.
  • Помните, что от одной формы (или страницы) к другой можно передавать скрытые переменные с помощью элементов ввода данных hidden. Применение такого подхода оказывает отрицательное влияние на уровень защищенности данных, поэтому им нельзя руководствоваться при обработке конфиденциальных данных. Кроме того, следует всегда тщательно проверять данные, полученные в элементе hidden - не стоит рассчитывать на то, что полученные данные в любом случае будут полностью соответствовать ожиданиям.

Ввод данных в базу данных с помощью передачи простой формы

Задача ввода данных в базу данных путем передачи формы HTML решается просто, если форма и обработчик формы находятся на двух отдельных страницах. В примере ниже приведена несложная форма, содержащая только одно поле ввода:

Код доступен только после покупки курса MySQL с нуля.

Вот такая у нас получилась форма.
Форма подписки на новости сайта

Ввод данных в базу данных и подготовка сообщения с подтверждением приема выполняются в обработчике формы (form handler), приведенном ниже, которому присвоено имя handler.php (здесь предполагается наличие базы данных users, которую мы создавали в статье "Взаимодействие PHP и MySQL"):

Код доступен только после покупки курса MySQL с нуля.

Ну а теперь сам код обработчика:

Код доступен только после покупки курса MySQL с нуля.

Вот и всё. Рекомендую теперь ознакомиться самостоятельно с функциями filter_input и filter_var и с понятиями фильтрация и санитация.

Читайте также
Комментарии (0)
Популярное за сутки
Сейчас читают
Логические задачи с собеседований