تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سلسلة دروس الحماية ( للمبتدئين , المتوسطين , المتقدمين ) + تطبيقات جاهزة للاستخدام
#3
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

في هذا الدرس أحب أن أعلمكم كيفية عمل صلاحيات مستخدمين داخل برنامجك لتحديد خواص ومميزات كل مسجل من مدير , عضو , مشرف إلى الخ ... سوف نستخدم في هذا الدرس قاعدة بيانات اكسيس لخزن المسجلين فيها بالإضافة إلى صلاحياتهم وسوف تكون فكرة البرنامج إننا نقوم بتعريف متغير في وحدة نمطية من النوع Public ليكون صالحا للاستعمال من جميع إنحاء المشروع ونقوم بخزن الصلاحية فيه على شكل قيمة نصيه وعندما يود المستخدم القيام بأمر معين يقوم البرنامج بالتحقق من قيمة هذا المتغير وهل صلاحيته تسمح له بتنفيذ هذه العميلة أم لا نبدأ أولا ونقوم بإنشاء قاعدة بيانات اكسيس ذات ثلاثة حقول باسم User Name , PassWord , Mag بعد ذلك نقوم بفتح برنامج فيجوال بيسك ونقوم بإضافة بإنشاء قياسي Stander.exe ونقوم بإضافة أداة DataControl بالإضافة إلى مربعا نص لتحقق من اسم المستخدم وكلمة المرور وزرا أمر واحد لدخول والأخر من اجل إلغاء العملية بعد إضافة الأدوات التي نحتاجها لمشروعنا نقوم بالبدء بكتابة الاكواد التي نحتاجها للمشروع أولا نقوم بالتعريف عن متغير صلاحية المستخدم داخل الوحدة النمطية بالشكل الأتي



PHP كود :
Public As String 
[b]بعدها ....



PHP كود :
Private Sub Form_Load()
Data1.DatabaseName App.Path "\DataBase.mdb"
Data1.RecordSource "Table1"
End Sub 



[/b]

شرح الكود السابق وفي حدث تفعيل الواجهة قمنا بإعطاء مسار قاعدة البيانات للأداة على اعتبار إن قاعدة البيانات داخل مجلد البرنامج وباسم DataBase حيث تقوم ألداله App.Path بإرجاع قيمة نصية هي مسار مجلد البرنامج أما بالنسبة للسطر الثاني فقد قمنا بفتح الجدول الموجود في قاعدة البيانات على اعتبار إن اسمه Table1 جرب تشغيل البرنامج وإذا تم تنفيذ الكود من دون أخطأ ارجع لنكمل هذا الدرس بعد ما تم الربط بقاعدة البيانات نقوم بالبدء بكتابة كود التحقق من أسم المستخدم وكلمة المرور





PHP كود :
Private Sub Command1_Click()
If 
Data1.Recordset.RecordCount 0 Then
MsgBox 
"You`r Message"
Exit Sub
End 
If
Data1.Recordset.MoveFirst
Do While Not Data1.Recordset.EOF
If Text1.Text Data1.Recordset.Fields!UserName And Text2.Text Data1.Recordset.Fields!Password Then
Data1.Recordset.Fields!Mag
Unload Me
Form2
.Show
Else
Data1.Recordset.MoveNext
End 
If
Loop
MsgBox 
"Wrong UserName Or PassWord"
End Sub 




في السطر الأول قمنا بالتحقق من عدد السجلات في قاعدة البيانات فإذا كانت صفر فيقوم بإظهار رسالة معينه للمستخدم تعلمه بعدم وجود أسماء عضويه مسجله في قاعدة البيانات أو يمكنك إضافة إي حدث تود هنا ثم بعد ذلك Exit Sub لخروج من ألأجراء وبعدها End If وهي نهاية جملة التحقق أما أذا لم يتحقق الشرط السابق ولم يقم البرنامج بالخروج من ألأجراء فيقوم بالأتي أولا ألانتقال إلى السجل الأول لبدء التحقق من السجل الأول للأخير وحتى لا يترك إي سجل ثم بعد ذلك قمنا بالدخول في حلقة شرطها استمر لحد ما تكون وصلت لسجل الأخير ووضعنا جملة ألاف في هذه الحلقة فإذا طابقت إدخالات المستخدم احد السجلات في قاعدة البيانات أي أسم المستخدم الذي كبته = أسم المستخدم المكتوب في السجل المتوقف عليه وكذلك الحال لكلمة المرور فيقوم بالاتي أولا يعطي المتغير M الذي قمنا بالتعريف عنه داخل الوحدة النمطية قيمة الحقل Mag الذي سوف يكون يحمل قيمة وهي صلاحية المستخدم بعد ذلك يقوم بإغلاق الواجهة وفتح الواجهة الثانية وهي واجهة المشروع الرئيسية والخروج من الإجراء أما في حال لم يتحقق الشرط ولم يطابق فيقوم البرنامج بالانتقال إلى السجل التالي وهكذا حتى نهاية الحلقة فإذا لم يتحقق إي شرط ولم يطابق إي إدخال فيقوم البرنامج في نهاية الحدث بإظهار رسالة تفيد بان هنالك خطأ إما في كلمة المرور أو اسم المستخدم ووضعنا الرسالة في نهاية الحدث وفي نهاية حلقه التكرار لان البرنامج لن يكمل الحدث في حال تحقق الشرط لأنه سوف يقوم حالا بالخروج من الإجراء بعد فتح النموذج الثاني وإغلاق نموذج التحقق وبالنسبة لكود الزر الثاني وهو الخروج من البرنامج سوف يكون بالشكل الأتي




PHP كود :
Private Sub Command2_Click()
End
End Sub 

ألان نقوم بإنشاء الأدوات المطلوبة على واجهة البرنامج الرئيسية وإضافة الأوامر نقوم بإضافة لنفرض مثلا أن برنامجنا هو برنامج بضائع وفيه زر حذف تعديل إضافة المدير له الصلاحية بعمل الثلاثة أشياء السابقة المشرف كل شيء إلا الحذف والمستخدم العادي مجرد مشاهد كيف سوف يكون العمل ببساطة تامة قبل تنفيذ أي حدث نقوم بالتحقق من صلاحيته كالأتي


PHP كود :
Private Sub Command1_Click()
If 
"مستخدم" Then
MsgBox 
"عذرا مجموعة عضويتك لا تملك الصلاحية لإضافة بضاعة جديدة"
Else
Event
End 
If
End Sub 
شرح الكود السابق :
في السطر الأول تحققنا من قيمة المتغير M الذي اتفقنا انه يحمل قيمة نصية وهي صلاحية المستخدم ففي هذا الكود إذا كانت الصلاحية والقيمة = مستخدم فيقوم البرنامج بعرض رسالة تفيد بأنه من غير المسموح له إضافة بضاعة جديدة وفي حال لم تكن الصلاحية مستخدم أي كانت أما مشرف أو مدير فيقوم بتنفيذ الحدث وهكذا هنا وصلنا لنهاية الشرح وفكرة عمل برنامج يحتوي على صلاحيات المستخدمين أتمنى أن أكون قد وفقت بطرح ألأفكار المناسبة بالنسبة لاكواد إضافة مستخدم تعديل إلى الخ .. فلقد شرحتها في الدرس السابق
بقلمي : أحمد فراس نبيل ( مكية )
أذا أعجبكم الشرح وأحسستم أنكم استفدتم منه شيئا فكل ما اطلبه منكم هو الدعاء لو ولوالدي بالغفران والرحمة

* يمكن تحميل المثال التطبيقي من هنا

ودمتم
متغيب
الرد }}}
تم الشكر بواسطة: awidan76


الردود في هذا الموضوع
سلسلة دروس الحماية ( للمبتدئين , المتوسطين , المتقدمين ) + تطبيقات جاهزة للاستخدام - بواسطة Ahmad Jawad_mybb_import4460 - 20-10-12, 06:36 PM


التنقل السريع :


يقوم بقرائة الموضوع: