Страница входа на сайт
Поскольку наш сайт будет поддерживать разграничение доступа, нам нужно обязательно сделать страницу входа на сайт. А, кроме того, нам необходимо создать в базе данных Library.asp таблицу, которая будет хранить список зарегистрированных посетителей.
Первым делом нужно, разумеется, создать таблицу, чтобы нам было с чего начинать создание страницы входа. Эта таблица будет содержать следующие поля:
- Name – имя посетителя (текстовое, 20 символов, ключевое);
- Password – пароль посетителя (текстовое, 20 символов);
- Grants – права посетителя (текстовое, 20 символов).
С первыми двумя полями все ясно. Поговорим о третьем поле – Grants. Dreamweaver, точнее, его поведения, "отвечающие" за разграничение доступа, принимают текстовые значения, говорящие о правах посетителя. Таких значений может быть, как минимум, три:
- "Administrator" – администратор сайта, полный доступ ко всем данным сайта;
- "user" – посетитель, доступ к открытым данным сайта, предназначенным для "обычных" посетителей сайта;
- "Guest" – "гость" сайта, минимальный доступ к данным сайта.
Основываясь на этих значениях, поведения Dreamweaver принимают решение, допускать ли посетителя до какой-либо страницы сайта. Конечно, вы можете задать свои значения, но эта троица присутствует практически во всех списках доступа.
Чтобы не усложнять чрезмерно наш сайт, давайте ограничимся двумя типами прав посетителей: администратором (значение "Administrator" поля Grants) и обычным посетителем (значение "user"). Администратор будет один и может править любые данные, сохраненные в базе Library.asp, а обычный посетитель сможет только их просматривать.
Итак, мы создали новую таблицу. Но подождите ее сохранять. Задайте для поля Grants значение по умолчанию "user", чтобы вновь зарегистрировавшиеся посетители сразу же получили соответствующие права доступа. Вот теперь можете закрывать и сохранять новую таблицу. Назовите ее Users.
После этого откройте только что созданную таблицу и введите в нее одну запись. Значения ее полей будут такими:
- поле Name – "Admin";
- поле Password – "Admin" (не будем заботиться о секретности пароля – все равно наш сайт учебный);
- поле Grants – "Administrator".
Теперь можно приступать к созданию страницы входа на сайт. Введите в нее поясняющий текст и назовите Login.asp. Причем сохраните ее в корневой папке сайта, а не в папке Admin, – мы используем ее для входа на сайт и администраторов, и обычных посетителей.
Теперь нам нужно создать форму с двумя полями ввода – соответственно, для ввода имени и пароля. Ну и, конечно, понадобится кнопка отправки данных. Создайте форму и назовите ее Login. Поля ввода назовите соответственно Name и Password. Не забудьте текстовые подписи, иначе посетитель вашего сайта не поймет, что куда нужно вводить. После этого сохраните страницу.
Теперь создадим поведение Log in user. Для этого выберите одноименный пункт в подменю User Authentication меню серверных поведений панели Server Behaviors. На экране появится диалоговое окно Log In User.
В раскрывающемся списке Get Input From Form выбирается форма, из которой будут взяты введенные посетителем имя и пароль. Поле ввода имени выбирается в раскрывающемся списке Username Field, а поле ввода пароля – в списке Password Field.
В раскрывающемся списке Validate Using Connection выбирается база данных, зарегистрированная в Dreamweaver. В списке Table выбирается таблица, содержащая список посетителей, в списке Username Column – поле, в котором хранятся имена посетителей, а в списке Password Column – поле, в котором хранятся пароли.
Очень часто на главной странице сайта делается гиперссылка на страницу входа (а иногда сама страница входа делается главной). В этом случае посетитель после успешного входа перенаправляется на страницу с "закрытыми" данными. В поле ввода If Login Succeeds, Go To как раз и вводится интернет-адрес страницы, на которую будет осуществлен переход, если посетитель успешно войдет на сайт. Введите в это поле имя страницы списка высказываний Admin/Sentences.asp. Вы также можете нажать кнопку Browse и выбрать нужную страницу в диалоговом окне Select File.
Иногда система разграничения доступа функционирует следующим образом. При попытке захода на не доступную "посторонним" страницу посетитель автоматически перенаправляется на страницу входа на сайт. После ввода имени и пароля, если этот посетитель занесен в список, он возвращается на страницу, на которую хотел войти изначально. Для такого случая предусмотрен флажок Go To Previous URL (if it exists). Включите его, если хотите, чтобы система разграничения доступа работала таким образом.
В поле ввода If Login Fails, Go To вводится интернет-адрес страницы, на которую будет осуществлен переход, если посетителю не удалось войти на сайт. (Такое может быть, например, из-за того, что посетитель не внесен в список или неправильно набрал имя или пароль.) Введите в это поле имя страницы входа Login.asp; таким образом, после неудачного входа посетитель окажется на той же странице. Вы также можете нажать кнопку Browse и выбрать нужную страницу в диалоговом окне Select File.
С помощью группы переключателей Restrict Access Based On вы можете задать, на основе чего производится разграничение доступа к Web-страницам. Если включен переключатель Username and Password, разграничение доступа производится на основе имени и пароля. Если же вы хотите "вовлечь" в этот процесс еще и права доступа посетителя, включите переключатель Username, Password, and Access Level. В этом случае становится доступным раскрывающийся список Get Level From, в котором вы сможете выбрать поле таблицы, выбранной в списке Table, откуда будут взяты права посетителя. В нашем случае – это поле Grants.
Введя все данные, нажмите кнопку ОК.
Вы, наверно, подумали, что сейчас мы будем проверять вновь созданную страницу в работе. Но делать это пока еще рано. Нам нужно защитить остальные страницы от несанкционированного доступа, т. е. попытки войти на них, миновав страницу входа на сайт. Без этого наши старания по защите сайта от "случайных людей" пойдут насмарку.