Добавление записей в адресную книгу

Вы уже сделали первый шаг по пути разработки управления адресной книгой: вы имеете уже созданную таблицу my_contacts в базе данных, которая ожидает добавление в нее данных. В этой главе вы узнаете, как:

  • создать административный интерфейс для добавления записей;
  • создать сценарий для добавления записей в таблицу;
  • потребовать основанной на сессии аутентификации перед тем как получить доступ к сценарию добавления записи.
  • Создание формы для добавления записи

    HTML-форма будет содержать поля ввода для каждого столбца в таблице my_contacts. В предыдущей главе вы создали 12 полей, которые соответствуют 12 столбцам таблицы. Интерфейс для добавления записи должен иметь место для ввода каждого из этих полей, кроме поля id, которое формируется автоматически и его вводить не нужно.

    Так как поле id является полем с автоувеличением, то если вы добавите запись и оставите это поле пустым, MySQL поместит в это поле следующий по порядку номер.

  • Создайте с помощью текстового редактора новый файл.
  • Начните блок РНР:
  • Чтобы начать сессию, введите строку:
  • Чтобы начать оператор if. . .else для проверки значения переменной $valid, введите код:
  • Если значение переменной не равно yes, то это значит, что пользователь не прошел аутентификацию и его нужно перенаправить на страницу с регистрационной формой и выйти из сценария.

  • Введите код:
  • Чтобы зарегистрировать переменную сессии в случае, если пользователь зарегистрирован, и закончить оператор if. . .else, введите код:
  • Чтобы закончить блок РНР, введите код:
  • Чтобы начать блок HTML, создающий форму для добавления записей, введите код:
  • Чтобы начать форму с методом post и действием do_addcontact.php, введите строку:
  • Чтобы начать таблицу, которая поможет лучше расположить поля формы, введите строку:
  • Чтобы создать первую строку таблицы с заголовками двух столбцов, введите код:
  • Создайте новую строку таблицы и ячейку, содержащую поле ввода с подписью для ввода имени:
  • Создайте в той же самой ячейке поле ввода с подписью для ввода фамилии:
  • Создайте в той же самой ячейке поле ввода с подписью для ввода первой строки адреса:
  • Создайте в той же самой ячейке поле ввода с подписью для ввода второй строки адреса:
  • Создайте в той же самой ячейке поле ввода с подписью для ввода третьей строки адреса:
  • Создайте в той же самой ячейке поле ввода с подписью для ввода почтового индекса:
  • Создайте в той же самой ячейке поле ввода с подписью для ввода страны и закройте ячейку HTML-таблицы:
  • В новой ячейке HTML-таблицы создайте поле ввода с подписью для ввода номера домашнего телефона:
  • В той же самой ячейке создайте поле ввода с подписью для ввода номера служебного или сотового телефона:
  • В той же самой ячейке создайте поле ввода с подписью для ввода адреса электронной почты:
  • В той же самой ячейке создайте поле ввода с подписью для ввода дня рождения, закройте ячейку и строку HTML-таблицы:
  • MySQL использует дату в формате ГГГГ-ММ-ДД. Так, например, поле, содержащее дату 2005-05-31, означает 31 Мая 2000 года.

  • Чтобы начать новую строку HTML-таблицы с объединенными ячейками, содержащими кнопку передачи формы с надписью и ссылку для возврата к административному меню, введите код:
  • Чтобы закрыть ячейку, строку и саму таблицу HTML, введите код:
  • Чтобы закрыть форму и завершить HTML-документ, введите код:
  • Сохраните созданный файл с именем show_addcontact.php в папке для документов вашего Web-сервера.
  • В следующем упражнении вы создадите сценарий, который будет забирать введенные в форму данные, создавать оператор SQL и добавлять запись в таблицу базы данных.

    Создание сценария для добавления записей

    Сценарий, который мы создадим в этом знакомстве, будет добавлять записи в вашу таблицу my_contacts с данными для адресной книги, принимая во внимание поле с автоувеличением id.

  • Создайте с помощью текстового редактора новый файл.
  • Начните блок РНР:
  • Чтобы начать оператор if. . .else для проверки обязательных полей (в нашем случае это имя и фамилия), введите код:
  • Вы можете использовать любое количество обязательных полей по ва шему усмотрению.

  • В случае, если хотя бы одно из обязательных полей ввода формы не заполнено, пользователь будет направлен на страницу, содержащую форму и выполнение сценария будет прервано:
  • Чтобы начать сессию, если обязательные поля имеют значения, и завершить оператор if. . .else, код:
  • Чтобы начать оператор if. . .else для проверки значения переменной $val введите код:
  • Если значение переменной не равно yes, то это значит, что пользователь не прошел аутентификацию и его нужно перенаправить на страницу с регистрационной формой и выйти из сценария:

  • Чтобы зарегистрировать переменную сессии в случае, если пользователь зарегистрирован, и закончить оператор if. . .else, введите код:
  • Чтобы создать две переменные для хранения имени базы данных и имени таблицы, введите строки:

  • Чтобы создать переменную для хранения результата функции mysql_connect ( ) используя символ @ для подавления предупреждений и функцию die ( ) - в случае неудачного завершения функции, введите код:
  • Чтобы создать переменную для хранения результата функции mysql_select_db ( ) используя символ @ для подавления предупреждений и функцию die ( ) - в случае неудачного завершения функции, введите код:
  • Чтобы создать переменную для хранения оператора SQL, введите код:
  • Напомним, что часть оператора в первых скобках содержит имена полей таблицы базы данных, перечисленных по порядку, а часть во вторых скобках содержит значения, которые должны быть записаны в эти поля.

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

  • Чтобы создать переменную для хранения результата функции mysql_query( ), используя символ @ для подавления предупреждений и функцию die ( ) в случае неудачного завершения функции, введите код:
  • Закройте блок РНР:
  • Чтобы добавить блок HTML, введите текст:
  • Чтобы вывести сообщение об успешном добавлении записи в таблицу, введите код:
  • Далее отобразим информацию о введенной записи, используя ту же раскладку страницы, что и в предыдущем знакомстве. Но в отличие от формы, страница будет содержать вместо полей ввода их значения, введенные в форме.

  • Чтобы начать таблицу, которая поможет лучше разместить информацию, введите строку:
  • Так же, как и в предыдущем упражнении, таблица будет содержать два столбца с заголовками.

  • Чтобы создать первую строку с заголовками, введите код:
  • Чтобы создать новую строку таблицы и ячейку, содержащую подпись и значение имени адресата, введите код:
  • В той же самой ячейке отобразите подпись и фамилию:
  • В той же самой ячейке отобразите подпись и первую строку адреса:
  • В той же самой ячейке отобразите подпись и вторую строку адреса:
  • В той же самой ячейке отобразите подпись и третью строку адреса:
  • В той же самой ячейке отобразите подпись и значение почтового индекса:
  • В той же самой ячейке отобразите подпись и значение страны и закройте ячейку HTML-таблицы:
  • Чтобы начать новую ячейку HTML-таблицы и отобразить в ней подпись и значение номера домашнего телефона, введите код:
  • В той же самой ячейке отобразите подпись и значение номера служебного или сотового телефона:
  • В той же самой ячейке отобразите подпись и значение адреса электронной почты:
  • В той же самой ячейке отобразите подпись и значение даты дня рождения, закройте ячейку и строку HTML-таблицы:
  • Чтобы начать новую строку HTML-таблицы с объединенными ячейками, содержащую ссылку для возврата к административному меню, введите код:
  • Чтобы закрыть ячейку, строку и саму таблицу HTML, введите строки:
  • Чтобы закрыть форму и завершить HTML-документ, введите строки:
  • Сохраните созданный файл с именем do_addcontact.php в папке для документов вашего Web-сервера.
  • В следующем знакомстве мы займемся внесением данных в таблицу.
  • Добавление данных в таблицу

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

  • Запустите свой Web-браузер, в поле ввода Адрес введите

    http://localhost/contact_menu.php

    и нажмите клавишу Enter.
  • В рабочее окно браузера будет загружена страница Система управления контактами (Рис. 14.1).
  • В поле ввода Имя пользователя введите: admin.
  • В поле ввода Пароль введите: abc123.
  • Нажмите кнопку ОК. В рабочее окно браузера будет загружена страница Система управления контактами с главным меню (Рис. 14.3).
  • Щелкните мышью на ссылке Добавить контакт. В рабочее окно браузера будет загружена страница Система управления контактами: Добавление Контакта (Рис. 15.1).
  • Рис. 15.1. Страница Система управления контактами: Добавление Контакта

    На Рис. 15.1 вы можете видеть пустую форму для добавления контакта, она содержит 12 полей ввода, кнопку Добавить и ссылку для возврата к главному меню. Заполним форму Добавление Контакта.

  • В поле ввода Имя: введите Ivan.
  • В поле ввода Фамилия: введите Ivanov.
  • В поле ввода Адрес (строка 1): введите Moskow.
  • В поле ввода Адрес (строка 2): введите Moskowskaya.
  • В поле ввода Адрес (строка 3): введите 133-10.
  • В поле ввода Почтовый индекс: введите 123456.
  • В поле ввода Страна: введите Russia.
  • В поле ввода Телефон (домашний): введите 1234567.
  • В поле ввода Телефон (служебный/сотовый): введите 7654321.
  • В поле ввода E-mail Адрес: введите ivan@ivanov.com.
  • В поле ввода День рождения (ГГГГ-ММ-ДД); введите 1970-01-20.
  • Полностью заполненная форма Добавление Контакта показана на Рис. 15.2.

    Рис. 15.2. Страница Система управления контактами: Добавление Контакта с заполненной формой

  • Нажмите кнопку Добавить. В рабочее окно браузера будет загружена страница Система управления контактами: Контакт Добавлен (Рис. 15.3).
  • Рис. 15.3. Страница Система управления контактами: Контакт Добавлен

    На этой странице вы видите сообщение об успешном добавлении введенной информации в таблицу my_contacts.

  • Щелкните мышью на ссылке Возврат к Главному меню. В рабочее окно браузера будет загружена страница Система управления контактами с главным меню (Рис. 15.3).
  • Самостоятельно введите в таблицу my_contacts информацию о нескольких адресатах.
  • Когда вы будете вводить собственные данные в таблицу, вы можете умышленно сделать несколько ошибок, так как в следующей главе мы будем создавать сценарии для изменения записей, внесенных в таблицу.



    Hosted by uCoz