Добавление записей в адресную книгу
Вы уже сделали первый шаг по пути разработки управления адресной книгой: вы имеете уже созданную
таблицу 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 информацию о нескольких адресатах.
Когда вы будете вводить собственные данные в таблицу, вы можете умышленно сделать несколько ошибок,
так как в следующей главе мы будем создавать сценарии для изменения записей, внесенных в таблицу.
|