Смекни!
smekni.com

Методика обучения технологии web 2.0 на примере создания школьного сайта спортивной тематики (стр. 8 из 13)

· IP-адрес сервера баз данных;

· Имя базы данных;

· Имя пользователя;

· Пароль

Один из способов взаимодействия с MySQL основан на использовании клиента командной строки MySQL. Чтобы запустить режим командной строки, нужно найти исполняемый файл. В нашем случае он находится по адресу:

G:\usr\local\mysql-5.1\bin. Запустивфайлmysql_run_to_import_dumps.exe, появитсяожиданиекомандывода (mysql>).

Для создания базы данных мы используем последовательность команд, изображенную на рис.4.

Рис. 4 Создание базы данных для веб-приложения

Рассмотрим подробнее каждую команду:

mysql> CREATE DATABASE phpweb20d; - данная команда создает базу данных под названием «phpweb20d»;

mysql> use phpweb20d – переход к использованию указанной базы данных;

grantallonphpweb20d.* tophpweb20d@localhostidentifiedby 'diplom'; - данная команда создает учетную запись пользователя phpweb20d. Ему присваиваются все права на указанную базу данных и пароль «diplom».

Установка библиотеки ZendFramework

ZendFramework представляет собой библиотеку компонентов PHP5 с открытым кодом, которую можно использовать для решения повседневных задач веб-программирования. Мы будем использовать эту библиотеку для создания веб-приложения. Поскольку она позволяет сосредоточиться на реализации возможностей web 2.0. Рассмотрим некоторые компоненты:

· Zend_Auth и Zend_Acl – используется для идентификации пользователей и проверки уровня их доступа.

· Zend_Controller – используется для обработки запросов клиентов и перенаправления запросов в соответствующие классы.

· Zend_Db – используются для связи с MyAQL-базой данных приложения

· Zend_Mail – используется для рассылки пользователям сообщений электронной почты.

· Zend_Validate и Zend_Filter – используется для проверки и коррекции данных, введенных пользователями в формах.

· Zend_Search – используется для полнотекстового поиска.

Для того, чтобы использовать данную библиотеку для создания приложения, нужно скачать с официального сайта (http://framework.zend.com/) установочный пакет и скопировать папку Zend в каталог include нашего веб приложения. Поскольку в файле конфигурации уже прописан путь до каталога include, в дальнейшем можно обращаться к компонентам библиотеки следующим образом: require_once('Zend/имя_файла.php');

Установка системы управления шаблонами

Для того, чтобы веб-приложение позволяло генерировать страницы на основании шаблонов, нужно установить систему управления шаблонами. Для этих целей мы будем использовать

SmartyTemplateEngine – систему управления шаблонами, написанную для PHP, которая позволяет легко отделять вывод данных и визуальную презентацию от внутренних операций приложения. Все, что увидит пользователь на экране, содержится в файле шаблона (.tpl). После обработки запроса пользователя, этот файл будет выведен на экран через посредничество системы Smarty. Файл шаблона состоит из последовательности текстовых заменителей, используемых для динамического вывода веб-контента.

Код системы Smarty можно загрузить с официального сайта (http://www.smarty.net/). Далее нужно скопировать содержимое папки libsв подкаталог Smarty каталога include.

Чтобы пользоваться системой Smarty, необходимо сконфигурировать следующие свойства каждого созданного объекта Smarty:

· Значение template_dir задает местонахождение всех шаблонов приложения. Ранее, при создании структуры каталогов приложения и файла его рабочих настроек, в качестве этого каталога был указан G:\home\localhost\www\phpweb20\templates

· Значение compile_dir задает каталог, в который система Smarty будет помещать скомпилированные шаблоны.

Поскольку в шаблонах используется собственный метаязык, каждый такой шаблон компилируется в код PHP для ускорения последующего выполнения.

При каждом изменении файла шаблона система автоматически перекомпилирует его и помещает в этот каталог. Каталог compile_dirдолжен быть доступен для записи веб-серверу. Для этой цели будем использовать каталог: G:\home\localhost\www\phpweb20\data\tmp\templates_c

Далее, с целью программной реализации настроек, мы последовательно создаем файлы, код которых находится в приложении 2 (листинг1.1 – 1.10). Результатом реализации данного программного кода является главная страница сайта, которая автоматически создается по шаблону.

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


Рис. 5 Главная страница будущего веб-приложения

2.2 Учетные записи и личные страницы пользователей. Реализация средств web 2.0

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

1. Создание таблицы пользователей в базе данных

2. Программная реализация аутентификации пользователей

3. Регистрация, вход и выход пользователей

Создание таблицы пользователей в базе данных

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

· User_id – целое число, используемое для внутреннего представления пользователя, его идентификационный номер;

· Username – уникальный буквенный идентификатор пользователя, используемый для входа на сайт. Это имя будет публичным – оно отображается в записях блога и других видах общедоступного контента сайта вместо настоящих имен, которые пользователи обычно скрывают;

· Password – строка символов, по которой выполняется аутентификация пользователя.

· User_type – строка, обозначающая классификацию пользователя по системе типов и категорий (администратор, пользователь или гость).

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

· User_id – ссылка на пользователя, то есть запись в таблице users;

· Profile_key – имя параметра, который хранится в данной записи;

· Profile_value – значение параметра. Если значение поля Profile_key равно e-mail, текущее поле будет содержать сам адрес.

Для создания двух связанных таблиц, нужно использовать команды SQL, приведенные на рис.6.

Прокомментируем каждую команду:

· Usephpweb20 – обратить к базе данных phpweb20;createtableusers – создать таблицу users, аналогично создается таблица users_profile; user_idserialnotnull – устанавливает тип serialдля поля user_id. Это счетчик, который автоматически будет меняться для каждой записи данного поля, не может быть пустым; Usernamevarchar(255) notnull – поле username может иметь до 255 символов в длину. Поля password и user_type будут иметь длину 32 и 20 символов соответственно.

Рис. 5 Команды sql для создания двух связанных таблиц

· primary key (user_id) – полеuser_idявляетсяключевым

· unique (username) – полеusername уникальное, то есть его значения для разных пользователей не могут повторяться.

· type = InnoDB – тип таблицы определен таким образом, чтобы была возможность создавать реляционные связи по внешним ключам.

· primary key (user_id, profile_key) – поля user_id, profile_key уникальны.

· foreign key (user_id) references users (user_id) – даннаятаблицасвязанастаблицейusersпоключевомуполюuser_id

Программная реализация аутентификации пользователей

Для аутентификации пользователей, то есть проверке вводимых им регистрационных данных используется программный компонент Zend_Auth библиотеки ZendFrameWork. Чтобы пользователь прошел аутентификацию, он должен предоставить контрольную информацию. В нашем случае такой информацией является поле password таблицы users. Проверка идентификационных данных и контрольной информации путем сравнения их с информацией из базы данных выполняется адаптером. Чтобы подключить данный компонент, мы последовательно набираем программный код, находящийся в листингах 2.1 – 2. 3 (приложение 2).

Регистрация, вход и выход пользователей