Главная » Языки программирования и собственно написание компьютерных программ

Проверка ввода имени, адреса e-mail, URL-адреса и пароля с помощью валидаторов на Visual Basic

В данном примере разберем типичную задачу проверки ввода пользователем имени, адреса e-mail, URL-адреса и пароля, например, при регистрации пользователя. Причем если страница (Web-форма) успешно прошла все этапы проверки, то направляем пользователя на другую, уже разрешенную для этого пользователя, Web-страницу.

Проектирование Web-формы проверки личных введенных данных пользователя

Решая поставленную в данном разделе задачу, запустим VB2010, закажем новый проект из шаблона Empty ASP.NET Web Application, укажем в поле Name имя Validations и щелкнем кнопку OK. К текущему проекту добавим Web-форму. Для этого в меню Project выберем команду Add New Item и в появившемся окне дважды щелкнем шаблон Web Form.

Теперь в конструкторе формы на вкладке WebForm1.aspx из панели ToolBox перенесем в форму пять меток Label, пять текстовых полей TextBox и командную кнопку Button. Текстовые поля соответствуют вводу имени пользователя, адреса e-mail, URL-адреса персональной Web-страницы пользователя, пароля и подтверждения пароля.

Для контроля правильности ввода данных перетащим из панели Toolbox несколько валидаторов. Так, для контроля обязательности ввода в первые четыре текстовых поля перенесем в форму четыре валидатора RequireFieldValidator. Для контроля полей Пароль и Подтверждение пароля перенесем валидатор Compare Validator, он будет сравнивать эти два поля, поэтому валидатор обязательности ввода для поля Подтверждение пароля не нужен. Кроме того, для контроля формата ввода e-mail-адреса и URL-адреса Web-страницы на соответствие заданному шаблону выберем на панели Toolbox элемент управления RegularExpressionValidator. Расположим их в форме.

Проверка достоверности ввода имени, E-mail адреса, URL-адреса и пароля

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

‘ Проверка достоверности ввода имени, E-mail адреса, URL-адреса и
‘ пароля. Web-страница проверяет ввод пользователем имени,
‘ E-mail-адреса, URL-адреса и пароля, например, при регистрации
‘ пользователя. Причем если страница (Web-форма) успешно прошла все
‘ этапы проверки, то направляем пользователя на другую, уже
‘ разрешенную для этого пользователя, Web-страницу.
PublicClass WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load
Page.Title ="Заполните следующие поля:"
Label1.Text ="Ваше Имя"
Label2.Text = "Ваш адрес E-Mail"
Label3.Text ="Ваша персональная Web-страница в сети Интернет"
Label4.Text ="Ваш Пароль"
TextBox4.TextMode = TextBoxMode.Password
Label5.Text = "Подтвердите пароль"
TextBox5.TextMode = TextBoxMode.Password
RequiredFieldValidator1.ControlToValidate = "TextBox1"
RequiredFieldValidator1.ErrorMessage = "* Вам Следует заполнить это текстовое поле"
RequiredFieldValidator2.ControlToValidate = "TextBox2"
RequiredFieldValidator2.ErrorMessage = "* Вам Следует заполнить это текстовое поле"
RequiredFieldValidator3.ControlToValidate = "TextBox3"
RequiredFieldValidator3.ErrorMessage = "* Вам Следует заполнить это текстовое поле"
RequiredFieldValidator4.ControlToValidate = "TextBox4"
RequiredFieldValidator4.ErrorMessage = "* Вам Следует заполнить это текстовое поле"
RegularExpressionValidator1.ControlToValidate = "TextBox2"
RegularExpressionValidator1.ValidationExpression = "\w+((-+.)\w+)*@\w+((-.)\w+)*\.\w+((-.)\w+)*"
RegularExpressionValidator1.ErrorMessage = "* Следует ввести правильный адрес E-mail"
RegularExpressionValidator2.ControlToValidate = "TextBox3"
RegularExpressionValidator2.ValidationExpression = "http://((\w-)+\.)+(\w-)+(/(\w- ./?%&=)*)?"
RegularExpressionValidator2.ErrorMessage = "* Следует ввести правильный адрес Web-узла"
CompareValidator1.ControlToValidate = "TextBox4"
CompareValidator1.ControlToCompare = "TextBox5"
CompareValidator1.ErrorMessage = "* Вы ввели разные паспорта"
Button1.Text = "Готово"
End Sub
Private Sub Button1_Click(ByVal senderAs Object,ByVal e As System.EventArgs) Handles Button1.Click
If Page.IsPostBack = True Then
If Page.IsValid = TrueThen
‘ Здесь можно записать введенные
‘ пользователем сведения в базу данных.
‘ Перенаправление на следующую страницу:
Response.Redirect("Next_Page.htm")
End If
End If
End Sub
EndClass

Как видно, при обработке события загрузки Web-страницы Page_Load устанавливаем значения свойств всех элементов управления. Мы могли бы это сделать в конструкторе на вкладке WebForm1.aspx в таблицах свойств, но в программном коде это выглядит более выразительно для читателя, здесь трудно пропустить и не учесть какой-либо элемент управления. В свойствах полей TextBox4 (Пароль) и TextBox5 (Подтвердите пароль) указанное свойство TextMode установлено в режим Password, что обеспечивает «защиту от посторонних глаз», т. е. при вводе пароля в данных текстовых полях будем видеть жирные точки вместо вводимых символов.

Далее следуют назначения свойств валидаторам обязательности заполнения полей RequiredFieid, знакомым нам из предыдущего раздела. Следует подробнее остановиться на валидаторе RegularExpression. Регулярное выражение, используемое для проверки достоверности ввода, выглядит несколько запутанным. Наверное, найдется мало людей, способных в точности переписать регулярное выражение, например, для e-mail-адреса:

"\w+((-+.)\w+)*@\w+((-.)\w+)*\.\w+((-.)\w+)*"

Этот код можно расшифровать примерно таким образом: \w+ — обязательный ввод любого количества текстовых символов (буквы и цифры); далее ((-+.)\w+)— означает, что допустим ввод точки, а затем опять любое количество букв и цифр, т. е. квадратные скобки означают необязательность, но возможность, а круглые скобки означают просто группировку выражения; затем *@\w+ — обязательное наличие значка электронной почты после которого должно следовать любое количество символов и т. д. Вручную такое регулярное выражение вводить не стоит, поскольку это источник дополнительных ошибок. Для задания регулярных выражений лучше на вкладке конструктора формы через щелчок правой кнопкой мыши посмотреть в таблицу свойств (Properties) валидатора RegularExpression. Здесь, напротив свойства ValidationExpression, после щелчка мышью на многоточии получим список типичных регулярных выражений для многих случаев жизни.

Выбирать и устанавливать нужное регулярное выражение можно либо в данной таблице, либо копированием через буфер обмена (<Ctrl>+<C>, а затем <Ctrl>+<V>) в программный код.

Контроль заполнения полей Пароль и Подтвердите пароль осуществлен с помощью валидатора CompareValidator путем сравнения этих полей.

Вернемся еще раз к программному коду. Здесь при обработке события «щелчок на кнопке» Готово происходит проверка, вызвана (загружена) ли данная Web-страница первый раз IsPostBack = False или в результате повторной отправки (постбэка)IsPostBack = True. Если страница загружена в результате постбэка и проверка правильности страницы с помощью валидаторов также была успешной IsValid = True, то можно записать сведения, предоставленные пользователем, В базу данных И перенаправить (Response.Redirect) его на следующую страницу Next_Page.htm, предусмотренную сценарием диалога с пользователем.

Создать в текущем проекте новую статическую Web-страницу очень просто, для этого следует в пункте меню Project выбрать команду Add New Item и дважды щелкнуть шаблон HTML page. Далее в конструкторе страницы, используя панель элементов Toolbox, спроектировать необходимую Web-страницу; заменить имя по умолчанию HTMLPage1.htm на Next_Page.htm удобно в окне Solution Explorer (Обозреватель решений).

Добавить комментарий

Ваш комментарий появится после модерации.