Аргерих Л. О языке РНР. Часть 5. Страница 130


userprivilege.php

Сценарий отвечает за обработку действий пользователя,

касающихся назначения полномочий пользователям. В него входят следую­щие функции (табл. 26.9):

Проектирование уровня представления

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

Для кода на стороне клиента будет применен очень упрощенный XHTML. В результате использования только основных элементов форм мы избегаем проблем со старыми броузерами, а кодируя на действительном (valid) XHTML, гарантируем совместимость, которая позволит избежать проблем тем разработчикам, которые хотят иметь на своих сайтах только действи­тельные документы XML.

Два основных вида деятельности пользователей в нашей системе - это опре­деление полномочий в системе и назначение полномочий пользователям. В первой задаче участвуют два экрана. Первый экран представляет пользо­вателя и список всех имеющихся у него полномочий. Пользователь может выбрать между отсутствием каких-либо действий («Exit»), выбором полно­мочия и созданием нового. Каждый из двух последних вариантов приводит пользователя ко второму экрану. Здесь пользователь может отказаться от действий, изменить описание полномочия или удалить полномочие. По за­вершении действия пользователь должен быть возвращен к экрану выбора.

В задачу назначения полномочий тоже вовлечено два экрана. Первый экран показывает список всех имеющихся пользователей. Можно отказаться от действий или выбрать пользователя. Если выбран пользователь, отобража­ется второй экран. На этом экране перечисляются все имеющиеся в системе полномочия с отметкой тех, которые назначены выбранному пользователю. Пользователь может изменить установки или покинуть экран, не сделав ни­каких изменений. В любом случае пользователь возвращается к первому экрану.

Кодирование приложения

Руководствуясь этим проектом, мы можем теперь написать код программы.

Код для базы данных

Начать можно со сценария для создания базы Файл будет называть­

ся userprivilege. sql:

8 userprivilege.sql

CREATE DATABASE IF NOT EXISTS UserPrivilege;

USE UserPrivilege;

CREATE: TABLE User (

username VARCHAR (10) NOT NULL PRIMARY KEY, fullname VARCHAR (50)

CREATE TABLE Privilege (

priv^id INT (11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, description VARCHAR (50)