Планирование вашей адресной книги

Первым шагом в разработке хорошего приложения является создание плана. Хотя импровизация по ходу разработки иногда приводит к положительным результатам, лучше всего начать с твердой основы и определить ряд целей. Несколько следующих глав помогут вам создать систему управления адресами - онлайновую адресную книгу. В этой главе мы расскажем, как сделать следующее:

  • определить административные задачи и создать меню;
  • изменить последовательность сценариев создания таблицы для поддержки первичных ключей и полей с автоувеличением;
  • определить и создать таблицу 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


    Hosted by uCoz