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

كاتب المشروع : أحمد فراس مكية ( المنتدى القديم )

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




PHP كود :
Private Sub Command1_Click()
Dim User_Name As StringPassWord As String
User_Name 
GetSetting("Name""Name""UserName")
PassWord GetSetting("Name""Name""PassWord")
If 
Text1.Text User_Name And Text2.Text PassWord Then
MsgBox 
"You Looged In "
Else
MsgBox "Wrong UserName Or Password"
End If
End Sub 



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



PHP كود :
SaveSetting "Name""Name""UserName""the Value" 


[b]
حيث نستخدم ألداله SaveSetting التي تقوم بخزن قيمة جديدة في حال لم تكن هنالك قيمة في الريجستري أو تعديل القديمة بعد تحديد الجذر والقسم والمفتاح وأخيرا القيمة يمكنك أنشاء واجهة جديدة وكتابة الكود ألأتي لإنشاء كلمة مرور أو تغيرها



PHP كود :
Private Sub Command1_Click()
SaveSetting "Name""Name""UserName"Text1.Text
SaveSetting 
"Name""Name""PassWord"Text2.Text
MsgBox 
"done"
End Sub 


[b]
كما تم الشرح يتم خزن القيم مباشرة يمكنك تجريب المثال ألان وتجربته بكل بساطه بقيت ألان نقطه بسيطة وهي كيفية ترميز النص الموجود داخل الـ TextBox بالرموز *** بكل بساطة يتم ذلك من خلال الخاصية الآتية والكود الأتي




PHP كود :
Text2.PasswordChar "*" 

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

[b]والـ * هي الرمز

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


ودمتم
[/b][/b][/b][/b][/b][/b]
متغيب
الرد }}}
تم الشكر بواسطة: awidan76 , العيد1403
#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
#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
#4
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

المثال مكون من 4 واجهات رئيسية

  1. تحقق من المستخدم
  2. اضافة مستخدم جديد مع ملاحظه انه لا يمكن اضافة مستخدم فوق صلاحيات المستخدم الحالي بما معنى لو انت عضو وحاولت تعمل مستخدم بصلاحية مراقب او مدير رح يرفض البرنامج ذلك
  3. تعديل مستخدم مع نفس الفقره السابقه بالنسبه لصلاحيات
  4. حظر مستخدم
يوجد ايضا بعض الخصائص المميزه للبرنامج حمله لترى بنفسك واذا احببت استخدام المثال في
برامجك كل ما عليك بتسمية الواجهة الرئيسية لبرنامجك باسم Form6 فقط اتمنى ان يعجبكم
المثال

للتحميل اضغط هنـــــا

ودمتم
متغيب
الرد }}}
تم الشكر بواسطة: awidan76
#5
جزاكم الله خير
اعز معلمين :
1) Ahmed _Mansoor
2) sniper.ps 
3) myalsailamy
4) ahmedabdelaliem 
5) sendbad100
6)Amir_alzubidy

الرد }}}
تم الشكر بواسطة:
#6
شكرا لك استاذي موضوع مهم جدا
الرد }}}
تم الشكر بواسطة:
#7
شكرا :-)
(( نحن قوم أعزنا الله بالإسلام فمهما ابتغينا العزة بغيره أذلنا الله )) .. 











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



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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم