منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : عدد محاولات تسجيل الدخول
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم و رحمة الله 
عيد فطر مبارك للجميع ان شاء الله
اخواني هذا ملف تسجيل الدخول وجدته عل اليوتوب
لو سمحتم كيف اضيف بالفورم login عدد تسجيل الدخول بثلاثة محاولات فقط و بعد ثلاثة محاولات يتم الخروج من البرنامج مع تسجيل عدد المحاولات المتبقية بالتاكست بوكس 1 و بارك الله فيكم
وعليكم السلام ورحمة الله وبركاته :
عيدكم مبارك ..

عدل الكود التالي :

كود :
   Public tPwd As Int16 = 0
   Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click

       If cboUser.Text = "" Then cboUser.Focus() : Exit Sub
       If txtPass.Text = "" Then txtPass.Focus() : Exit Sub
       If Check_user() = False Then
           MsgBox("كلمة المرور لهذا المستخدم غير صحيحة", MsgBoxStyle.Critical, "رسالة خطأ")
           tPwd += 1
           TextBox1.Text = 3 - tPwd
           If tPwd = 3 Then FRM_mainmenu.Close()
           '  Exit Sub
       End If
شكرا جزيلا أخ Taha Okla 
بارك الله فيك على المساعدة و عيد مبارك يا رب
لم تضبط اخي طه و يتم الخروج نهائيا مع أول محاولة خاطئة
هذا الكود كاملاً ..

كود :
Public tPwd As Int16 = 0
Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click

   If cboUser.Text = "" Then cboUser.Focus() : Exit Sub
   If txtPass.Text = "" Then txtPass.Focus() : Exit Sub
   If Check_user() = False Then
       MsgBox("كلمة المرور لهذا المستخدم غير صحيحة", MsgBoxStyle.Critical, "رسالة خطأ")
       tPwd += 1
       TextBox1.Text = 3 - tPwd
       If tPwd = 3 Then FRM_mainmenu.Close()
       '  Exit Sub
   End If
   'تعريف متغير لجملة الاستعلام

   Dim sql = "select * from user_data WHERE user_name='" & cboUser.Text & "'"
   'تشييد موصل البيانات داتا ادبتر
   Dim Adp = New OleDb.OleDbDataAdapter(sql, DBConn)
   'تشيد مجموعة البيانات
   Dim ds = New DataSet
   'ملىء مجموعه البيانات
   Adp.Fill(ds)
   'وضع الجدول في كائن من نوع جدول
   Dim dt = ds.Tables(0)
   If dt.Rows.Count > 0 Then
       Dim dr As DataRow
       dr = dt.Rows(0)

       SavePermission = dr!Save_
       UpdatePermission = dr!Update_
       DeletePermission = dr!Delete_
       PrintPermission = dr!Print_
       FRM_mainmenu.btn_Stock.Enabled = dr!Stock_Scr
       FRM_mainmenu.btn_Accounting.Enabled = dr!Accounting_Scr
       FRM_mainmenu.btn_Invoice.Enabled = dr!Invoice_Scr
       FRM_mainmenu.btn_Voucher.Enabled = dr!Voucher_Scr
       FRM_mainmenu.btn_Report.Enabled = dr!Report_Scr
       FRM_mainmenu.btn_Users.Enabled = dr!Users_Scr
       UserName = dr!user_name
       FRM_mainmenu.currentUser.Text = UserName

       Adp.Dispose()
       ds.Dispose()
       dt.Dispose()
       Me.Close()


   End If




End Sub
هل جربته اخي طه بعد اذنك لديك على الملف .. لانه نفس المشكلة حتى و لو كتبت كلمة المرور خاطئة في المرة الأولى ستختفي الفورم Login بشكل عادي
فقط أعد تفعيل الـ ('  Exit Sub) إلى (Exit Sub)

كود :
   Public tPwd As Int16 = 0
   Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click

       If cboUser.Text = "" Then cboUser.Focus() : Exit Sub
       If txtPass.Text = "" Then txtPass.Focus() : Exit Sub
       If Check_user() = False Then
           MsgBox("كلمة المرور لهذا المستخدم غير صحيحة", MsgBoxStyle.Critical, "رسالة خطأ")
           tPwd += 1
           TextBox1.Text = 3 - tPwd
           If tPwd = 3 Then FRM_mainmenu.Close()
           Exit Sub
       End If
       'تعريف متغير لجملة الاستعلام

       Dim sql = "select * from user_data WHERE user_name='" & cboUser.Text & "'"
       'تشييد موصل البيانات داتا ادبتر
       Dim Adp = New OleDb.OleDbDataAdapter(sql, DBConn)
       'تشيد مجموعة البيانات
       Dim ds = New DataSet
       'ملىء مجموعه البيانات
       Adp.Fill(ds)
       'وضع الجدول في كائن من نوع جدول
       Dim dt = ds.Tables(0)
       If dt.Rows.Count > 0 Then
           Dim dr As DataRow
           dr = dt.Rows(0)

           SavePermission = dr!Save_
           UpdatePermission = dr!Update_
           DeletePermission = dr!Delete_
           PrintPermission = dr!Print_
           FRM_mainmenu.btn_Stock.Enabled = dr!Stock_Scr
           FRM_mainmenu.btn_Accounting.Enabled = dr!Accounting_Scr
           FRM_mainmenu.btn_Invoice.Enabled = dr!Invoice_Scr
           FRM_mainmenu.btn_Voucher.Enabled = dr!Voucher_Scr
           FRM_mainmenu.btn_Report.Enabled = dr!Report_Scr
           FRM_mainmenu.btn_Users.Enabled = dr!Users_Scr
           UserName = dr!user_name
           FRM_mainmenu.currentUser.Text = UserName

           Adp.Dispose()
           ds.Dispose()
           dt.Dispose()
           Me.Close()


       End If




   End Sub
تمام اخ طه ربنا يبارك فيك ان شاء الله و يزيدك من علمه و فضله ان شاء الله


هذا تعديلي على المثال وفق الفكرة اللتي فهمتها
اضفت عمود باسم noa اختصار عدد مرات المحاولة
اضفت  دالة لجلب القيمة المخزنة و مقارنتها بما هو مكتوب بـ TextBox1
كما عدلت على كود التحقق  بحيث اذا كلمة المرور خاطئة يقوم باضافة رقم بمقدار +1 للحقل المخصص وهو noa 
و المثال بسيط ارجو ان يكون فيه المطلوب ولو بصورة اخرى
كل عام و انتم بخير
شكرا جزيلا اخي justforit عيد مبارك كل عام و انت بالف خير يا رب
فكرة رائعة من خلال ما فهمته لاني لم اتمكن من تطبيقها من الملف لاني حتى و لو كتبت كلمة المرور صحيحة منذ المرة الاولى تظهر رسالة لقد تجاوزت العدد المسموح به لو ممكن بعد اذنك تشوفلي الخلل وين و بارك الله فيك
أدخل على قاعدة البيانات ..
الحقل الاخير من الجدول (noa)
هذا الحقل يسجل فيه عدد مرات تسجيل الدخول الخاطئة ..
كي يعمل معك البرنامج بثلاث محاولات أذهب وصفر القيم الموجودة في هذا الحقل..
--
فإذا تجاوز الثلاث مرات يمنعه منعاً نهائياً من الدخول مرة أخرى..

- إذا أردت له فقط ثلاث محاولات خاطئة لا غير : عليك بهذه الطريقة.

- واذا أردت السماح له مع كل تشغيل للبرنامج ثلاث محاولات، عليك بالطريقة الأولى..
الصفحات : 1 2