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

في هذا الدرس البسيط أن أحب أن أعلمكم كيفية عمل برنامج لتحقق من أسم المستخدم وكلمة المرور بالاستعانة بقاعدة بيانات اكسيس لمستوى أمان عالي نبدأ على بركة الله أولا الأدوات التي نحتاجها وهي مربعا نص وزرا أمر أحدها لتحقق من أسم المستخدم وكلمة المرور والأخر لخروج من البرنامج بداية نقوم بإنشاء قاعدة بيانات اكسيس فيها حقلين الأول باسم UserName والثاني باسم PassWord ونعمل أي كلمة مرور لقاعدة البيانات ثم نقوم بتحويلها إلى قاعدة بيانات تنسيق 97 فور عمل قاعدة البيانات نقوم بفتح برنامج فيجوال بيسك وعمل مشروع قياسي Stander.exe ونقوم بإضافة الأدوات التي سبق ذكرها بالإضافة إلى أداة Data Control بعد إضافة الأدوات السابقة وتجهيز إطار المشروع نبدأ بكتابة الاكواد الضرورية لعمل برنامج بداية ربط البرنامج بقاعدة البيانات



PHP كود :
Private Sub Form_Load()
Data1.Connect ";Pwd = ahmed"
Data1.DatabaseName App.Path "\DataBase.mdb"
Data1.RecordSource "Table1"
End Sub 
[b]
شرح الكود السابق :
[/b]


[b]في السطر الأول قمنا بكتابة كلمة المرور التي وضعناها لقاعدة البيانات و في السطر الثاني قمنا بتحديد مسار قاعدة البيانات التي نود ربطها مع البرنامج وقد استخدمنا الأمر App.Path الذي يرجع قيمة نصية وهي مسار مجلد البرنامج وبعد ذلك \ لدخول إلى مجلد البرنامج و كتبنا بعد ذلك اسم قاعدة البيانات أما بالنسبة للسطر الثاني فقد قمنا بتحديد اسم الجدول الذي نود فتحه ( ملاحظه العمليات السابقة على أساس أن قاعدة البيانات موجود في مجلد البرنامج )
قمنا ألان بالانتهاء من ربط قاعدة البيانات مع برنامجنا نبدأ بإضافة كود التحقق من أسم المستخدم وكلمة المرور
[/b]




PHP كود :
Private Sub Command1_Click()
If 
Data1.Recordset.RecordCount 0 Then
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
Form2
.Show
Unload Me
Else
Data1.Recordset.MoveNext
End 
If
Loop
MsgBox 
"عذرا كلمة المرور او اسم مستخدم غير صالح"
End Sub 

شرح الكود السابق :

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



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




[b]وهو للخروج من البرنامج نهائيا ألان سوف أعطي لك كود إضافة مستخدم جديد [/b]



PHP كود :
Private Sub Command3_Click()
If 
Data1.Recordset.RecordCount 0 Then
GoTo Ahmed
End 
If
Data1.Recordset.MoveFirst
Do While Not Data1.Recordset.EOF
If Data1.Recordset.Fields!UserName Text1.Text Then
MsgBox 
"اسم المستخدم موجود مسبقا"
Exit Sub
Else
Data1.Recordset.MoveNext
End 
If
Ahmed:
Data1.Recordset.AddNew
Data1
.Recordset.Fields!UserName Text1.Text
Data1
.Recordset.Fields!Password Text2.Text
Data1
.Recordset.Update
End Sub 




قبل أن نقوم بالدخول للشرح يجب عليك أن تعلم أنه يجب التحقق قبل إضافة إي مستخدم بان اسم المستخدم غير موجود مسبقا

شرح الكود السابق :

في السطر الأول قمنا بالتحقق من عدد السجلات وفي حال كانت صفر قمنا بالطلب من برنامج فيجوال بيسك بأن يقوم بنقلنا لمنطقة أخرى من الأجراء لتنفيذ حدث إضافة المستخدم مباشرة إما أذا لم يخرج من الأجراء فسوف يقوم البرنامج بالانتقال إلى السجل الأول لبدء التحقق من الأول إلى الأخير كما ذكرت وبعدها بالدخول في حلقه أيضا شرطها أن يكون البرنامج واقف على السجل الأخير وفي داخل الحلقة تأكدنا هل مربع النص = قيمة احد السجلات في قاعدة البيانات في الحقل UserName فأذا كان كذلك فيعطي رسالة للمستخدم لإخباره لذلك ويخرج من الإجراء وأما أذا لم تكن مساوية فينتقل للسجل التالي لتحقق وهكذا لنهاية الحلقة بعد ذلك قمنا بكتابة كود Data1.Recordset.AddNew الذي يعلم برنامج الفيجوال بأننا نود إدخال سجل جديد بعد ذلك قيم السجلات وإسنادها للحقول وأخيرا Data1.Recordset.Update لتحديث المدخلات

أتمنى أن أكون قد وفقت بالشرح بقلمي المبرمج أحمد فراس نبيل ( مكية ) أذا أعجبكم الشرح وأحسستم أنكم أستفتدم منه شيئا فكل ما أطلبه منكم هو الدعاء لي ولوالدي بالغفران والرحمة


ودمتم

[b]يتبع ........
[/b]
متغيب
الرد }}}
تم الشكر بواسطة: awidan76


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


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


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