المستخدمين - ali_ahmed12 - 30-10-22
السلام عليكم ورحمة الله وبركاته
لدي جدول المستخدمين في الصوره
حقل type اريده عندما يكون موجود به مدير لديه كل شاشات مسموحه له واذا كان مستخدم عادي شاشة المستخدمين والعملاء لاتظهر له
انا شاشات عبارة عن ازرار كل زر يفتح شاشة .......... توضيح انا لزالت اتعلم
(30-10-22, 08:20 PM)ali_ahmed12 كتب : السلام عليكم ورحمة الله وبركاته
لدي جدول المستخدمين في الصوره
حقل type اريده عندما يكون موجود به مدير لديه كل شاشات مسموحه له واذا كان مستخدم عادي شاشة المستخدمين والعملاء لاتظهر له
انا شاشات عبارة عن ازرار كل زر يفتح شاشة .......... توضيح انا لزالت اتعلم
كود تسجيل دخول
كود :
If TextBox1.Text = "" Then
MessageBox.Show("الرجاء ادخال كلمة المرور")
TextBox1.Focus()
End If
Dim dt As New DataTable
query = "select * from users where id='" & ComboBox1.Text & "' and pwd='" & TextBox1.Text & "'"
da = New SqlDataAdapter(query, Module1.con)
da.Fill(dt)
If (dt.Rows.Count <> 0) Then
Module1.id = dt.Rows(0)(0)
Module1.pwd = dt.Rows(0)(1)
Me.Hide()
fullname = dt.Rows(0)(2)
Form_main.ShowDialog()
Me.Dispose()
Else
MessageBox.Show("كلمة المرور غير صحيحة")
End If
RE: المستخدمين - barawy - 02-11-22
عليكم السلام ورحمة الله
ممكن تعرف متغير اسمه UserTypeفى الفورم الرئيسية وتقوم بتغيير قيمته بعد التحقق من الاسم وكلمة المستخدم FrmMain.usertype="Admin" ثم استدعاء الفورم
وتعطل او تشغل الأزرار بحسب قيمة هذا المتغير فى حدث FormLoad
كود تسجيل دخول
كود :
If (dt.Rows.Count <> 0) Then
Module1.id = dt.Rows(0)(0)
Module1.pwd = dt.Rows(0)(1)
Me.Hide()
fullname = dt.Rows(0)(2)
Frm_main.UserType=dt.Rows(0)(3)
Form_main.ShowDialog()
Me.Dispose()
Else
MessageBox.Show("كلمة المرور غير صحيحة")
End If
كود تشغيل الفورم الرئيسي
كود :
Public UserType As String
Private Sub frmMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
If UserType <> "مدير" Then
Me.btn1.Enabled= False
Me.btn2.Enabled= False
End If
End Sub
RE: المستخدمين - ali_ahmed12 - 02-11-22
(02-11-22, 01:04 PM)barawy كتب : عليكم السلام ورحمة الله
ممكن تعرف متغير اسمه UserTypeفى الفورم الرئيسية وتقوم بتغيير قيمته بعد التحقق من الاسم وكلمة المستخدم FrmMain.usertype="Admin" ثم استدعاء الفورم
وتعطل او تشغل الأزرار بحسب قيمة هذا المتغير فى حدث FormLoad
كود تسجيل دخول
كود :
If (dt.Rows.Count <> 0) Then
Module1.id = dt.Rows(0)(0)
Module1.pwd = dt.Rows(0)(1)
Me.Hide()
fullname = dt.Rows(0)(2)
Frm_main.UserType=dt.Rows(0)(3)
Form_main.ShowDialog()
Me.Dispose()
Else
MessageBox.Show("كلمة المرور غير صحيحة")
End If
كود تشغيل الفورم الرئيسي
كود :
Public UserType As String
Private Sub frmMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
If UserType <> "مدير" Then
Me.btn1.Enabled= False
Me.btn2.Enabled= False
End If
End Sub
عملت مثل ما قلت لكن علي محمود مدير اثنين button يظهر لي enbled هدا كود
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If TextBox1.Text = "" Then
MessageBox.Show("الرجاء ادخال كلمة المرور")
TextBox1.Focus()
End If
Dim dt As New DataTable
query = "select * from users where id='" & ComboBox1.Text & "' and pwd='" & TextBox1.Text & "'"
da = New SqlDataAdapter(query, Module1.con)
da.Fill(dt)
If (dt.Rows.Count <> 0) Then
Module1.id = dt.Rows(0)(0)
Module1.pwd = dt.Rows(0)(1)
Me.Hide()
fullname = dt.Rows(0)(2)
Form_main.UserType = dt.Rows(0)(3)
Form_main.ShowDialog()
Me.Dispose()
Else
MessageBox.Show("كلمة المرور غير صحيحة")
End If
End Sub
هدا كود فورم لود
كود :
Private Sub Form_main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label2.Text &= Now.ToShortDateString
Label3.Text &= Environment.MachineName
Label1.Text = fullname
If UserType <> "مدير" Then
Button3.Enabled = True
Button1.Enabled = True
Button2.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button8.Enabled = True
Button7.Enabled = True
Else
Button4.Enabled = False
Button5.Enabled = False
End If
End Sub
هدا جدول
RE: المستخدمين - مصمم هاوي - 02-11-22
لو تريد مثال باكسس وبعدها قم بتغييره للسكيوال فحاضر
RE: المستخدمين - ali_ahmed12 - 02-11-22
(02-11-22, 09:16 PM)مصمم هاوي كتب : لو تريد مثال باكسس وبعدها قم بتغييره للسكيوال فحاضر
تمام
RE: المستخدمين - مصمم هاوي - 03-11-22
هذا مثال مقتبس من مشروعي يمكنك التعديل عليه
[attachment=28414]
RE: المستخدمين - ali_ahmed12 - 03-11-22
(03-11-22, 08:01 PM)مصمم هاوي كتب : هذا مثال مقتبس من مشروعي يمكنك التعديل عليه
هدا خطا يظهر ثناء تحميل ملفك
RE: المستخدمين - barawy - 05-11-22
السلام عليكم
انت فى الاتجاه الصحيح ولكن اظنك عكست المطلوب اثناء كتابة الكود واليك الكود المعدل
ملحوظة : علامة <> تعنى لا تساوى
شرح الكود : هو اذا كان نوع المستخدم لا يساوي مدير .. قم بالتالى .... تعطيل الأزرار ما عدا رقم 3 و 4 ... غير ذلك ... قم بقتح جميع الأزرار
مرفق مثال
كود :
Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If UserType <> "مدير" Then
Button1.Enabled = False
Button2.Enabled = False
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = False
Button6.Enabled = False
Else
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
End If
End Sub
RE: المستخدمين - ali_ahmed12 - 06-11-22
(05-11-22, 11:51 AM)barawy كتب : السلام عليكم
انت فى الاتجاه الصحيح ولكن اظنك عكست المطلوب اثناء كتابة الكود واليك الكود المعدل
ملحوظة : علامة <> تعنى لا تساوى
شرح الكود : هو اذا كان نوع المستخدم لا يساوي مدير .. قم بالتالى .... تعطيل الأزرار ما عدا رقم 3 و 4 ... غير ذلك ... قم بقتح جميع الأزرار
مرفق مثال
كود :
Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If UserType <> "مدير" Then
Button1.Enabled = False
Button2.Enabled = False
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = False
Button6.Enabled = False
Else
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
End If
End Sub
لايعمل ملف مرفق الذي ارسالته انا فيجوال 2015
كود :
Private Sub Form_main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label2.Text &= Now.ToShortDateString
Label3.Text &= Environment.MachineName
Label1.Text = fullname
If UserType <> "مدير" Then
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Else
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = False
Button5.Enabled = False
End If
End Sub
كود :
If TextBox1.Text = "" Then
MessageBox.Show("الرجاء ادخال كلمة المرور")
TextBox1.Focus()
End If
Dim dt As New DataTable
query = "select * from users where id='" & ComboBox1.Text & "' and pwd='" & TextBox1.Text & "'"
da = New SqlDataAdapter(query, Module1.con)
da.Fill(dt)
If (dt.Rows.Count <> 0) Then
Module1.id = dt.Rows(0)(0)
Module1.pwd = dt.Rows(0)(1)
Me.Hide()
fullname = dt.Rows(0)(2)
Form_main.UserType = dt.Rows(0)(3)
Form_main.ShowDialog()
Me.Dispose()
Else
MessageBox.Show("كلمة المرور غير صحيحة")
End If
RE: المستخدمين - Taha Okla - 06-11-22
(05-11-22, 11:51 AM)barawy كتب : السلام عليكم
انت فى الاتجاه الصحيح ولكن اظنك عكست المطلوب اثناء كتابة الكود واليك الكود المعدل
ملحوظة : علامة <> تعنى لا تساوى
شرح الكود : هو اذا كان نوع المستخدم لا يساوي مدير .. قم بالتالى .... تعطيل الأزرار ما عدا رقم 3 و 4 ... غير ذلك ... قم بقتح جميع الأزرار
مرفق مثال
وعليكم السلام ورحمة الله وبركاته :
بالنسبة للمثال المرفق - الطريقة جيدة وفعالة -
==========================
لكن للعلم وبعيداً عن موضوع هذه المشاركة : إن استخدامك لجملة الاستعلام عن اسم المستخدم وكلمة المرور ضعيفة جداً
وبإمكان أي مستخدم عادي(يعرف ما هي حقنة الـ SQL) أن يخترق البرامج التي تنفذها بهذه الطريقة بدون فتح قاعدة البيانات أو كسرها
ولا يحتاج تحليل أكواد البرنامج، ولا يحتاج معرفة اسم المستخدم أو كلمة المرور ..
كود :
query = "select * from users where id='" & UsernameTextBox.Text & "' and pwd='" & PasswordTextBox.Text & "'"
-
ثانياً في حال عدم صحة كلمة المرور أو اسم المستخدم : لا تجعل البرنامج يعطي رسالة تنبيه للمستخدم بخطأ الادخال .. بل اجعل الرسالة على ليبل موجودة على نفس الفورم (كي لا تجعل للمخترقين السبيل سهل على حقن بربنامجك أيضاً عن طريق برامج تعديل الملفات التنفيذية).
فالتنبيه برسالة (ضمن نافذة حوار جديدة Dialog) تعني أن الكود الذي سبق هذه الرسالة هو كود التحقق.
|