Планирование вашей адресной книги
Первым шагом в разработке хорошего приложения является создание плана. Хотя импровизация по ходу
разработки иногда приводит к положительным результатам, лучше всего начать с твердой основы и
определить ряд целей. Несколько следующих глав помогут вам создать систему управления адресами -
онлайновую адресную книгу. В этой главе мы расскажем, как сделать следующее:
определить административные задачи и создать меню;
изменить последовательность сценариев создания таблицы для поддержки первичных ключей и полей с
автоувеличением;
определить и создать таблицу my_contacts.
Планирование и создание административного меню
При создании меню вы сможете не только просматривать данные вашей.адресной книги, но и добавлять,
изменять и удалять адреса. Мы создадим хорошее меню - оно будет обеспечивать связь со всеми рабочими
сценариями, а вдобавок обеспечит некоторую аутентификацию с тем, чтобы только вы могли видеть данные.
А теперь создадим все это в одном сценарии!
Создайте с помощью текстового редактора новый файл.
Начните блок РНР:
Чтобы начать сессию, или продолжить ее, если она уже существует, введите строку:
Чтобы начать оператор if ... else, который проверяет значение переменной $ор (это
скрытая переменная в регистрационной форме, которую мы скоро создам), введите код:
Если значением $ор является ds, значит пользователь заполнил форму.
Начните другой оператор if...else для проверки правильности имени пользователя и пароля,
введенных пользователем:
Вы можете использовать любое имя пользователя и пароль по вашему усмотрению. Этот сценарий будет
проверять, чтобы имя пользователя было admin, а пароль - аbс123.
Если введенные имя пользователя или пароль окажутся неверными, то создайте переменную, хранящую
сообщение об ошибке.
Чтобы создать переменную $show_form и присвоить ей значение yes, введите строку:
Значение этой переменной мы будем проверять позже, чтобы определить, что нужно отобразить .
Чтобы продолжить оператор if...else, введите код:
Чтобы зарегистрировать сессию с именем valid, в случае если пользователь указал правильные
имя и пароль, введите строку:
Чтобы присвоить переменной $valid значение, введите строку:
Чтобы создать переменную $show_menu и присвоить ей значение yes, введите строку:
Значение этой переменной мы будем проверять позже, чтобы определить, что нужно отобразить.
Чтобы закрыть внутренний оператор if. . .else, введите:
Чтобы продолжить внешний оператор if. . .else, введите код:
Чтобы определить с помощью оператора if. . .else, что нужно отобразить пользователю
(регистрационную форму или административное меню), введите код:
Чтобы закрыть внешний оператор if. . .else, введите:
Чтобы начать формирование блока регистрационной формы в перемени $form_block, введите строку:
Чтобы создать заголовок, введите строку
Чтобы начать форму с методом post и действием, заключенным в переменной $PHP_SELF, введите строку:
$PHP_SELF - глобальная переменная, значением которой является имя текущего сценария.
Используя $PHP_SELF как действие в форме, вы по существу вызываете перезагрузку сценария после нажатия
кнопки пере дачи формы.
Выведите на экран сообщение:
Если регистрация была выполнена некорректно, то переменная $msg будет содержать сообщение об ошибке
регистрации, и оно будет отображено в этом месте формы. Если значение $msg не было создано, то ничего
напечатано не будет и присутствие этой переменной не причи нит никакого вреда.
Чтобы создать подпись и поле ввода для имени пользователя, введите код:
Чтобы создать подпись и поле ввода для пароля пользователя, введите код:
Чтобы добавить скрытое поле для $ор, введите строку:
Чтобы добавить пустую строку, а затем кнопку передачи формы, введите код:
Чтобы закрыть форму, введите код:
Чтобы создать блок административного меню, которое будет показано прошедшему аутентификацию пользователю,
введите код:
Чтобы добавить в меню несколько пунктов и закончить блок, введите код:
Чтобы окончательно определить, что должно быть выведено в окно браузера для отображения
($menu_block или $form_block), используйте оператор if. . .else и новую переменную $display_block:
Закройте блок РНР:
Чтобы начать блок HTML, введите код:
Чтобы отобразить результат, введите строку:
Чтобы закрыть блок HTML, введите код:
Сохраните созданный файл с именем contact_menu.php в папке для документов вашего Web-сервера.
Проверка административного меню
Запустите свой Web-браузер, в поле ввода Адрес: введите
http://localhost/contact_menu.php
и нажмите клавишу Enter.
B рабочее окно браузера будет загружена страница Система управления контактами с формой
Проверка прав пользователя (Рис. 14.1).
Загруженная страница содержит форму с полями для ввода имени и пароля пользователя и кнопку
передачи формы ОК.
Рис. 14.1. Страница Система управления контактами
с формой Проверка прав пользователя
Введите в поле ввода Имя пользователя любое имя, отличное от admin.
Введите в поле ввода Пароль любой набор символов или оставьте пустым.
Нажмите кнопку ОК. В рабочее окно браузера будет перезагружена страница форм
Проверка прав пользователя с сообщением об ошибке (Рис. 14.2).
Рис. 14.2. Страница формы Проверка прав пользователя
с сообщением об ошибке
Как видно из Рис. 14.2, сценарий работает правильно.
В поле ввода Имя пользователя введите admin.
В поле ввода Пароль введите abc123.
Нажмите кнопку ОК. В рабочее окно браузера будет загружена страница Система управления
контактами с меню (Рис. 14.3).
Рис. 14.3. Страница Система управления контактами с меню
Загруженная страница содержит меню для управления адресной книгой. Для каждого пункта меню в дальнейшем
будет создан сценарий.
В следующем упражнении вы вернетесь на пару глав назад и создадите таблицу my_contacts, чтобы вы могли выполнить
все задачи, перечисленные в созданном административном меню.
Определение таблицы my_contacts
Перед созданием таблицы для адресной книги давайте решим, какую информацию мы хотим в ней
хранить: имя, адрес, номера телефонов разных видов, адрес электронной почты, и, может быть, день
рождения адресата. Создаваемая нами таблица будет содержать поля, показанные в следующей таблице:
Т а б л и ц а 14.1. Поля, содержащиеся в таблице
Имя поля
|
Описание
|
id
|
Уникальный идентификационный номер
|
fname
|
Имя
|
lname
|
Фамилия
|
address 1
|
Первая строка адреса
|
address2
|
Вторая строка адреса
|
address 3
|
Третья строка адреса
|
postcode
|
Почтовый индекс
|
country
|
Страна
|
prim_tel
|
Первый номер телефона
|
sec_tel
|
Второй номер телефона
|
email
|
Адрес электронной почты
|
birthday
|
День рождения
|
Далее вы измените сценарии для создания таблиц, созданные в главе Создание таблиц базы данных.
Вы добавите в них новые возможности, которые называются первичными ключами и полями с автоувеличением.
Изменение сценариев для создания таблицы
Вы внесете небольшие изменения в два из трех сценариев для создания таблицы, которые мы создали в главе
Создание таблиц базы данных. После внесения этих изменений в форму добавятся флажки для управления
первичными ключами и полями с автоувеличением. Эти типы полей чрезвычайно полезны для определения полей ID.
Откройте файл do_showfielddef.php в вашем текстовом редакторе.
Найдите следующий фрагмент кода, который определяет строку заголовков таблицы в переменной $form_block:
Добавьте между последними тегами </TH> и </TR> следующий код:
Далее, найдите фрагмент кода:
Добавьте после этого фрагмента следующие строки:
Сохраните измененный файл.
Теперь изменим заключительный сценарий создания таблицы.
Откройте файл do_createtable.php в вашем текстовом редакторе.
Поскольку мы добавили два дополнительных элемента в форму, то необходимо выполнить их проверку перед
формированием запроса к таблице базы данных в операторе SQL. Для этого мы используем оператор if. . .else.
Внутри оператора цикла for найдите строку:
и после него начните блок оператора if. . .else для проверки флажка Автоувеличение?:
Если флажок Автоувеличение? установлен, то добавьте к оператору SQL дополнительную опцию.
Когда вы определяете поле как auto_increment (автоувеличение), оно должно быть определено как NOT NULL
(не нулевое).
Если флажок Автоувеличение? не установлен, то переменной $additional присвойте пустое
значения и закройте оператор if. . .else:
Чтобы начать оператор if. . .else для проверки флажка Первичный ключ?, введите код:
Если флажок установлен, то добавьте в оператор SQL признак первичного ключа:
Признак первичного ключа определяет указанное в нем имя поля таблицы как первичный ключ, и отделяется
запятой от определяемого поля. Фор мат признака следующий: primary key (имя_поля).
Если флажок сброшен, то добавляемая к оператору SQL переменная не должна содержать текста.
Введите код:
Последние изменения необходимо произвести перед выходом из оператора цикла при проверке длины поля и
создания части оператора SQL.
Найдите строку
и замените ее следующей строкой, учитывающей дополнительные параметры поля:
Найдите строку
и замените ее следующей строкой:
Сохраните изменения в файле.
Теперь, используя новые измененные сценарии, создадим таблицу для хранения контактов.
Создание таблицы my_contacts
Мы создадим таблицу с одним первичным ключом и полем с автоувеличением.
Запустите свой Web-браузер, в поле ввода Адрес введите
http://localhost/show_createtable.html
и нажмите клавишу Enter.
В рабочее окно браузера будет загружена страница Создание таблицы базы данных: Этап 1 (Рис. 14.4).
Рис. 14.4. Страница Создание таблицы базы данных: Этап 1
В поле ввода Имя таблицы введите my_contacts.
В поле ввода Количество полей введите число 12.
Нажмите кнопку Перейти к этапу 2. В рабочее окно браузера будет загружена страница Создание таблицы
базы данных: Этап 2 (Рис. 14.5).
Рис. 14.5. Страница Создание таблицы базы данных: Этап 2
Загруженная страница содержит форму и 12 строк, каждая из которых определяет параметры одного поля
записи таблицы my_contact. Заполните таблицу:
В первой строке в поле ввода Имя поля введите id, из открывающегося списка Тип поля выберите строку
int и установите флажки Первичный ключ? и Автоувеличение?.
Во второй строке в поле ввода Имя поля введите fname, из открывающегося списка Тип поля
выберите строку charvar, в поле ввода Длина поля введите число 75.
В третьей строке в поле ввода Имя поля введите lname, из открывающегося списка Тип поля
выберите строку charvar, в поле ввода Длина поля введите число 75.
В четвертой строке в поле ввода Имя поля введите address 1, из открывающегося списка Тип поля
выберите строку charvar, в поле ввода Длина поля введите число 100.
В пятой строке в поле ввода Имя поля введите address2, из открывающегося списка Тип поля
выберите строку charvar, в поле ввода Длина поля введите число 100.
В шестой строке в поле ввода Имя поля введите address3, из открывающегося списка Тип поля
выберите строку charvar, в поле ввода Длина поля введите число 100.
В седьмой строке в поле ввода Имя поля введите postcode, из открывающегося списка Тип поля
выберите строку charvar, в поле ввода Длина поля введите число 25.
В восьмой строке в поле ввода Имя поля введите country, из открывающегося списка Тип поля
выберите строку charvar, в поле ввода Длина поля введите число 100.
В девятой строке в поле ввода Имя поля введите prim_tel, из открывающегося списка Тип поля
выберите строку charvar, в поле ввода Длина поля введите число 35.
В десятой строке в поле ввода Имя поля введите sec_tel, из открывающегося списка Тип поля
выберите строку charvar, в поле ввода Длина поля введите число 35.
В одиннадцатой строке в поле ввода Имя поля введите email, из открывающегося списка Тип поля
выберите строку charvar, в поле ввода Длина поля введите число 100.
В двенадцатой строке в поле ввода Имя поля введите birthday, из открывающегося списка Тип поля
выберите строку date.
Страница с заполненной формой приведена на Рис. 14.6.
Рис. 14.6. Страница Создание таблицы базы данных: Этап 2
с заполненной формой
Нажмите кнопку Создать Таблицу. В рабочее окно браузера будет загружена страница (Рис. 14.7).
Создание таблицы базы данных: Этап 3
Рис. 14.7. Страница Создание таблицы базы данных: Этап 3
|