Macromedia Dreamweaver MX

Страницы общего доступа

Страницы общего доступа предназначены для обычных посетителей сайта. Как правило, они создаются после административных страниц; в этом слу­чае вы можете использовать последние как образцы для создания "обычных" страниц. В самом деле, "обычные" страницы часто в общих чертах повторя­ют административные, и вам остается только удалить некоторые возможно­сти, не нужные обычным посетителям. Так мы и сделаем.

Страница списка категорий

Давайте сделаем так, чтобы при входе на сайт посетитель мог выбрать кате­горию высказываний (зря мы их, что ли, вводили!). А для этого нам пона­добится создать страницу списка категорий, чем мы сейчас и займемся.

Создадим новую серверную страницу ASP и сохраним ее в файле Categories. asp в корневой папке сайта. И остановимся, чтобы немного подумать.

Что нам нужно? Правильно, вывести список категорий. А еще? Нам необ­ходимо, чтобы название каждой категории в этом списке представляло со­бой гиперссылку. Щелкнув по ней, посетитель сайта попадет на другую страницу, на которой будут перечислены все высказывания этой категории.

Как это сделать? Очень просто: надо воспользоваться поведением Go то Detail Раде, выполняющим переход на связанную страницу.

Создадим новый набор записей под именем categories. Задайте выборку всех записей таблицы categories. После этого задайте сортировку записей по полю Name, для чего выберите это поле в раскрывающемся списке Sort диалогового окна Recordset (см. рис. 17.15). Раскрывающийся список, рас­положенный правее, позволит вам задать порядок сортировки записей: по возрастанию (пункт Ascending) или по убыванию (пункт Descending).

Напишите на странице Categories. asp какой-либо пояснительный текст, если хотите. После этого создайте текстовый абзац и поместите в него динамиче­ский текст, связанный с полем Name набора данных categories. Далее выде­лите этот текст и создайте "вокруг" него повторяющуюся область, привязав ее к созданному нами набору данных categories. Пусть она отображает сра­зу все записи набора — их не так много, чтобы городить огород с навигато­ром и строкой статуса.

Собственно, на этом создание страницы списка категорий почти закончено. Осталось только добавить поведение, реализующее переход на страницу со списком высказываний, относящихся к выбранной категории.

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

Выделите содержимое повторяющейся области, а именно динамический текст. После этого выберите в меню серверных поведений панели Server Behaviors пункт Go То Detail Page. На экране появится диалоговое окно Go То Detail Page (рис. 18.7).

Страницы общего доступа

Рис. 18.7. Диалоговое окно Go То Detail Раде

В поле ввода Detail Page введите интернет-адрес вторичной страницы, ото­бражающей список высказываний. Вы также можете щелкнуть по кнопке Browse и выбрать нужную страницу в диалоговом окне Select File. Мы соз­дадим эту страницу позднее и назовем ее так же, как уже созданную адми­нистративную страницу списка высказываний, — Sentences. asp, только со­храним в корневой папке сайта.

В поле ввода Pass URL Parameter введите имя параметра, передаваемого из первичной страницы во вторичную. По умолчанию Dreamweaver подставля­ет в него имя первого поля ввода набора записей, и, если это то поле, кото­рое вам нужно, менять его не стоит.

В раскрывающемся списке Recordset выбирается набор записей, чье поле используется для связи первичной и вторичной страниц. Само же это поле выбирается в раскрывающемся списке Column. В нашем случае это набор записей Categories и его поле ID.

Теперь остается задать метод передачи параметра из первичной страницы во вторичную. Это делается с помощью группы флажков Pass Existing Para­meters. Флажок URL Parameters задает использование метода GET, а фла­жок Form Parameters — метода POST. Нам лучше выбрать метод GET, т. к.

Объем передаваемых данных очень невелик, а хранить их в секрете необяза­тельно.

Введя все данные, нажмите кнопку ОК. После этого Dreamweaver преобра­зует выделенный фрагмент страницы в гиперссылку, выполняющую переход на вторичную страницу. И, разумеется, создаст поведение Go то Detail Page.

Теперь нужно ограничить доступ к этой странице. Для этого, как вы пом­ните, нужно создать поведение Restrict Access То Page. Задайте разграни­чение доступа по имени и паролю (переключатель Username and Password диалогового окна Restrict Access То Page). Таким образом, на эту страницу смогут попасть все зарегистрированные посетители вне зависимости от прав доступа.

На этом создание страницы списка категорий можно считать законченным. Наш следующий шаг — создание страницы списка высказываний.

Страница списка высказываний

В данном случае лучше всего создать страницу списка высказываний "с ну­ля". Если же мы решим создать ее на основе созданной ранее администра­тивной страницы Sentences. asp, нам придется вносить в нее слишком много изменений. Поэтому создадим новую серверную страницу, напишем на ней поясняющий текст и сохраним под именем Sentences. asp в корневой папке сайта.

После этого создадим набор записей sentences, извлекающий данные из только что созданной таблицы. Зададим для него фильтр по полю Category. Для этого выберите название этого поля в раскрывающемся списке Filter диалогового окна Recordset, а в раскрывающемся списке, расположенном правее, — пункт = (равенство значений поля и фильтра). Далее в списке, расположенном ниже, выберите пункт URL Parameter (параметр, передан­ный методом GET), а в поле ввода, расположенном ниже и правее, введите имя этого параметра — id.

Кроме того, мы можем не извлекать из таблицы все поля, а ограничимся только полем contents. Включим переключатель Selected в группе Column диалогового окна Recordset и выберем в расположенном ниже списке пункт Content, соответствующий одноименному ПОЛЮ таблицы. Поля ID И Category нам в данном случае не нужны, потому что их содержимое никак не ото­бражается на странице. Это позволит нам уменьшить нагрузку на серверный компьютер, который и без того сильно загружен, ведь для хранения содер­жимого полей таблиц расходуется его оперативная память.

Теперь поместите в текстовом абзаце динамический текст, привязанный к полю content набора записей, выделите весь абзац, щелкнув по соответст­вующей кнопке секции тегов, и создайте "вокруг" него повторяющуюся об­ласть. Затем сделайте навигатор и строку статуса набора данных.

После этого поместите повторяющуюся область, навигатор и строку статуса внутрь необязательной области, отображающейся только при непустом на­боре записей sentences. И создайте еще одну необязательную область, ото­бражающуюся, наоборот, при пустом наборе записей и содержащую текст "Список высказываний пуст". Как видите, мы повторяем шаги, проделан­ные нами при создании административной страницы Sentences. asp.

Последний шаг (его мы тоже проделывали) — это защита страницы от не­санкционированного доступа и предоставление возможности выхода с сай­та. Создайте соответствующие поведения и гиперссылку для выхода. Когда будете создавать поведение Restrict Access То Page, задайте разграничение доступа по имени и паролю (переключатель Username and Password диалого­вого окна Restrict Access То Page). После этого сохраните готовую страницу.

Теперь проверьте готовые страницы. Для этого опубликуйте сайт на Web - сервере, откройте в Web-обозревателе страницу Categories. asp, войдите на сайт (под именем "Admin" — других посетителей в списке нет), выберите категорию и просмотрите отобранные серверной программой высказывания. После этого выйдите с сайта. Если вы все сделали правильно, все должно работать.

Страница регистрации посетителя

Последняя из страниц общего доступа, которую нам нужно создать, — это страница регистрации нового посетителя нашего сайта. В самом деле, если посетитель не сможет зарегистрироваться на нашем сайте, занеся сведения о себе в список посетителей, как же он сможет добраться до содержимого этого сайта?

Создайте новую серверную страницу, поместите на ней поясняющий текст и сохраните под именем Register. asp в корневой папке нашего сайта. Помес­тите в нее форму и назовите user. В этой форме создайте поля ввода Name (имя посетителя) и Password (пароль) и кнопку отправки данных.

Для регистрации посетителя в списке используется хорошо вам знакомое поведение insert Record. В самом деле, если список посетителей представ­ляет собой таблицу базы данных, а сведения о каждом посетителе — запись в этой таблице, то именно этим поведением и стоит пользоваться. Создайте же его. Пусть содержимое поля ввода Name заносится в поле Name таблицы Users, а содержимое ПОЛЯ ввода Password — В поле Password. Поле Grants, в котором записываются права посетителя, получит значение по умолчанию "user" (обычный посетитель). А в качестве страницы, на которую будет вы­полнен переход после успешного добавления новой записи, задайте

Categories. asp — в этом случае новоиспеченный посетитель сразу сможет зарегистрироваться и просмотреть плоды нашего ума.

Вроде бы все прекрасно. Посетитель заходит на эту страницу, вводит дан­ные о себе и сразу же получает доступ к сайту. Однако это та самая просто­та, которая хуже воровства. Почему? Сейчас увидим.

Предположим, какой-то посетитель успешно зарегистрировался на нашем сайте, получил к нему доступ и успешно же вышел с него. После этого на сайте регистрируется второй посетитель. И вводит то же самое имя, под ко­торым уже зарегистрировался первый посетитель!

Если вы не предусмотрите специальных средств для недопущения совпаде­ния имен посетителей (например, не сделаете поле таблицы, где хранится имя, уникальным), это может породить конфликт. А такие конфликты ни к чему хорошему не ведут — они ведут только к плохому!

Именно для недопущения таких случаев Dreamweaver предусматривает осо­бое поведение Check New Username. Это поведение проверяет таблицу списка посетителей на предмет совпадения введенного в форме регистрации имени с уже имеющимися в таблице. Если введенного новым посетителем имени нет в таблице, поведение check New username запускает поведение insert Record, успешно добавляющее в список нового посетителя.

Давайте создадим поведение check New username. Но сначала проверим, дей­ствительно ли мы создали поведение Insert Record.

Выберите в подменю User Authentication меню серверных поведений панели Server Behaviors пункт Check New Username. На экране появится диалоговое окно Check New Username, показанное на рис. 18.8.

Страницы общего доступа

Рис. 18.8. Диалоговое окно Check New Username

В раскрывающемся списке Username Field выберите поле ввода, в котором вводится имя посетителя.

В поле ввода If Already Exists, Со То вводится интернет-адрес страницы, на которую будет осуществлен переход, если в списке будет найден посетитель с таким именем. Введите в это поле имя страницы регистрации Register. asp. Вы также можете нажать кнопку Browse и выбрать нужную страницу в диа­логовом окне Select File.

Завершив ввод данных, нажмите кнопку ОК. И сохраните готовую стра­ницу.

Осталось сделать совсем немного. А именно — поместить на страницу входа на сайт Login. asp гиперссылку, указывающую на страницу регистрации. Это нужно для того, чтобы новый посетитель сайта смог сразу же после откры­тия его зарегистрироваться в списке. Сделайте это.

Теперь можете проверить готовую страницу в действии. Опубликуйте сайт на Web-cepeepe, откройте в Web-обозревателе страницу входа Login. asp, за­регистрируйтесь на сайте под другом именем, скажем, "User", и попробуйте войти на сайт.

Реализация поиска высказываний

Все сайты, публикующие информацию из баз данных, предусматривают возможность поиска записей на основе какого-либо критерия. Давайте и мы сделаем возможность поиска высказываний по введенному посетителем слову.

Чтобы посетитель смог ввести слово для поиска, нам нужно создать где-то форму. Давайте поместим ее на странице списка категорий Categories. asp под собственно списком категорий, в новом текстовом абзаце. Назовем форму search, поле ввода слова для поиска — content и не забудем о кнопке отправки данных.

Теперь выделим форму и с помощью редактора свойств введем следующие параметры:

□ Action — имя страницы, отображающей результаты поиска, а именно — Result. asp;

□ Method — метод отправки данных, в нашем случае — GET;

□ Enctype — кодировка отправляемых данных, а именно — appiication/x - www-form-urlencoded.

Теперь, если посетитель введет слово и нажмет кнопку отправки данных, это слово будет отправлено странице Result. asp как параметр гиперссылки

Content.

Далее нужно создать страницу отображения результатов поиска. Создадим ее на основе уже существующей страницы списка высказываний Sen - tences. asp. Для этого откроем ее и сохраним под именем Result. asp в корне­вой папке сайта. После этого откроем новую страницу.

В панели Bindings удалим параметр гиперссылки id, если он там есть. После этого откроем диалоговое окно Recordset и изменим кое-какие параметры фильтра. В раскрывающемся списке Filter выберем пункт Content (имя по­ля, по которому мы будем осуществлять поиск) а в раскрывающемся спи­ске, расположенном правее, — пункт contains (поле должно содержать вве­денное посетителем слово). Далее в списке, расположенном ниже, выберем пункт URL Parameter (параметр, переданный методом GET), а в поле вво­да, расположенном ниже и правее, введем имя этого параметра — content. И нажмем кнопку ОК.

Сохраним страницу Result. asp и опубликуем сайт на ¥еЬ-сервере. Войдем на сайт, введем в форму поиска какое-либо слово и нажмем кнопку отправ­ки данных. В результате мы получим страницу со списком найденных вы­сказываний.

Все, наш сайт готов!

Вы можете расширить его. Например, сделать Web-интерфейс для работы со списками категорий и посетителей. Также вы можете добавить дизайнер­ские изыски — этим мы не занимались вообще. В общем, поработайте над сайтом, практика пойдет вам на пользу.

Что дальше?

А дальше... все! Книга закончилась.

Macromedia Dreamweaver MX

Заключение

"А напоследок я скажу..." — поется в старинном русском романсе. Что же мне сказать напоследок?.. Книга о Dreamweaver закончена. Я рассказал об этой программе все, что знал и что мог …

Реализация выхода с сайта

Осталось реализовать выход с сайта — и работу над административными страницами можно считать законченной. Как вы помните, каждый посети­тель, вошедший на сайт с разграничением доступа, должен по окончании работы с …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Партнеры МСД

Контакты для заказов оборудования:

Внимание! На этом сайте большинство материалов - техническая литература в помощь предпринимателю. Так же большинство производственного оборудования сегодня не актуально. Уточнить можно по почте: Эл. почта: msd@msd.com.ua

+38 050 512 1194 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.