2012年7月4日 星期三

密碼再次驗證的範例

在建立會員機制,讓使用者建立密碼的時候,最好二次驗證,double check,因為密碼在輸入時是遮罩掉避免有心人士從旁觀看,所以有可能使用者建立密碼時按錯鍵自已也不清楚。

◎以上程式範例AspNet13.aspx,如在頁框下不能操作,請開新視窗操作
◎如果有問題歡迎您提出,dnowba很需要有人和我一起討論

底下是程式碼:

 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ' 介紹textbox的應用
        ' textbox的模式是三合一的
        ' .AutoPostBack() 不是每個控制項都有的
        ' 應用上就如這個範例
        If Not Page.IsPostBack Then
            Me.TextBox2.AutoPostBack = True
            Me.TextBox1.TextMode = TextBoxMode.Password
            Me.TextBox2.TextMode = TextBoxMode.Password
            Me.Button1.Visible = False
        End If
    End Sub
    Protected Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
        '
        If Me.TextBox2.Text = Me.TextBox1.Text Then
            Response.Write("<font color='green'>正確,請按「下一步」按鈕</font>")
            Me.Button1.Visible = True
        Else
            Response.Write("<font color='red'>錯誤,請重新輸入</font>")
            Me.Button1.Visible = False
        End If
    End Sub

重點:

程式是利用TextBox控制項的autoPostBack功能,不另外作一個button來把值送出。只要TextBox文字一發生改變,滑鼠移到別TextBox以外的地方,就會自動觸發PostBack。然後再引導TextChanged事件程序。

如下圖,我們點選TextBox控制項檢視屬性(可以選控制項後按f4快速切換到屬性視窗),像AutoPostBack這種行為屬性,不是每個控制項都可以使用的…
image

偶有所得:

有趣的地方是 行7和行15
等號 「=」這個符號在不同程式語言(Java、C#、VB) 表達的意思不大一樣

比較正經的C#
如果是要賦予變數一個值的話,用「=」
如果是要判斷左右二邊值一不一樣的話,用「==」

比較青菜的VB
如果是設定運算子(assignment operator),像行7那樣的話,用「= 」
如果是關係運算子(Relational operator),像行15那樣,還是用「= 」

比較嚴謹的Java
如果是賦值運算符(對岸的說法),用「=」
如果是關係運算符(對岸的說法),用「==」
還多了一個「===」,代表全等於(值相等,數據類型也相等)

◎讀VB裡的「=」好像讀作文一樣的,得要上文、下文對照才能知道VB裡這個等號代表的是「賦值」還是「比較」
◎簡單來說,放在判別式(IF、WHILE之類)的等號,就是比較二邊是否相等的邏輯運算符,等號表示恒等符,沒有的話就是賦值
◎複雜來說,調用方法,如果有個Boolean類型的參數,也可傳入a=b 形式的,這也是關係運算符,如果a=b,返回1 (true),如果不相等,返回0 (false)

我想我找到喜歡Visual Basic的原因了。

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...
// Dnow Function