Последняя из страниц общего доступа, которую нам нужно создать, — это страница регистрации нового посетителя нашего сайта. В самом деле, если посетитель не сможет зарегистрироваться на нашем сайте, занеся сведения о себе в список посетителей, как же он сможет добраться до содержимого этого сайта?
Создайте новую серверную страницу, поместите на ней поясняющий текст и сохраните под именем 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.
В раскрывающемся списке Username Field выберите поле ввода, в котором вводится имя посетителя.
В поле ввода If Already Exists, Go To вводится интернет-адрес страницы, на которую будет осуществлен переход, если в списке будет найден посетитель с таким именем. Введите в это поле имя страницы регистрации Register.asp. Вы также можете нажать кнопку Browse и выбрать нужную страницу в диалоговом окне Select File.
Завершив ввод данных, нажмите кнопку ОК. И сохраните готовую страницу.
Осталось сделать совсем немного. А именно — поместить на страницу входа на сайт Login.asp гиперссылку, указывающую на страницу регистрации. Это нужно для того, чтобы новый посетитель сайта смог сразу же после открытия его зарегистрироваться в списке. Сделайте это.
Теперь можете проверить готовую страницу в действии. Опубликуйте сайт на Web-сервере, откройте в Web-обозревателе страницу входа Login.asp, зарегистрируйтесь на сайте под другом именем, скажем, "User", и попробуйте войти на сайт.