الدرس السابع عشر: صفحة التحقق من المعلومات

الدرس السابع عشر: صفحة التحقق من المعلومات

ستقوم باستقبال القيم المدخلة في نموذج Admin.asp ، ثم ستتحقق من صحت إدخال اسم المستخدم والرقم السري، ومن تسجيلهما في الموقع.
إن لم تكن المعلومات المدخلة صحيحة في النموذج، سوف ترسل هذه الصفحة (validentry.asp) ، متغير يسمى error إلى ملف admin.asp ، ليخبره عن نوع الخطأ في إدخال المعلومات. ليقوم النموذج بعرض رسالة الخطأ المناسبة للمستخدم.
إذا هذه الصفحة validentry.asp لن تقوم بعرض أي شيء للمستخدم، ستقوم فقط بالتحقق من صحة إدخال المعلومات، فإن كانت غير صحيحة، سيرسل error لـ admin.asp وسوف يعرض الخطأ. إما إذا كانت المعلومات المدخلة صحيحة للمستخدم، سوف يقوم بعرض صفحة adminsection ، وهذا سنتحدث عنه في الدرس التالي.
الآن سنكتب Code التحقق من إدخال المعلومات كالتالي :

<% Name=Request.form(“Name”) ‘admin.asp القيمة من النموذج في ، Name سيستقبل المتغير 
Password=Request.form(“Password”) 
‘admin.asp القيمة من النموذج في ، Password سيستقبل المتغير 

If Name = “” Then  1. يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج لاسم المستخدم Name إذا كان 
response.redirect (“admin.asp?error=Name_Null”)
 ‘ Name_Null مع إرسال الخطأ admin.asp ارجع إلى صفحة 

Else
If Password = “” Then ‘2. يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج للرقم السري Password إذا كان 
response.redirect (“admin.asp?error=Pass_Null”) 
‘ Pass_Null مع إرسال الخطأ admin.asp ارجع إلى صفحة 
Else 3. إذا كان اسم المستخدم متوفر والرقم السري متوفر ، حقق الأوامر التي بالأسفل %><!–#include file=”connection.txt” –><%

SelectSql = “Select * from admin where name = ‘”& Name &”‘ Admin تحقق من وجود اسم المستخدم في جدول الإداريين 
set rs=ADO.execute (SelectSql)

If rs.EOF Then ‘4. Name أي لا يوجد سجل في الجدول يحتوى على اسم المستخدم يساوي القيمة الموجودة في EOF يساوي rs إذا كان 
response.Redirect (“admin.asp?error=Name_Entry”) 
‘ Name_Entry مع إرسال الخطأ admin.asp ارجع إلى صفحة 
Else
If rs(“pass”) <> password Then 
‘5. لا يساوي ، أي لم يدخل المستخدم رقم سري صحيح موجود في القاعدة rs(“pass”) إذا كان 
response.redirect (“admin.asp?error=Pass_Entry”) 
‘ Pass_Entry مع إرسال الخطأ admin.asp ارجع إلى صفحة 

Else6. أما إذا كان الرقم السري لاسم المستخدم المدخل صحيح 

Name_Cooky= request.cookies(“Name”) ‘ Name_Cooky افتح كوكيز الاسم وضعه في المتغير 

If Name_Cooky <> Name Then7. اختبر الكوكيز ، هل يساوي الاسم المدخل في النموذج 
response.cookies (“Name”) = Name 
 إذا لم يكون مساوي له ، فضع الاسم الجديد من النموذج في الكوكيز 

End IF

response.Redirect (“adminsection.asp”) ‘ انتقل إلى صفحة إدارة الموقع

End If

End If

End If
End If
%>

كما ترون، الصفحة تحتوي فقط على كود لغة ASP ، ولا تحتوي على كود لغة html ، لأنها لن تعرض شيئا.
سأقوم الآن بشرح الـ Code ، جزئا جزئا ، وسوف ترون كيف أن الأمر سهل.
استقبال القيم من نموذج إدخال اسم المستخدم والرقم السري : admin.asp
كما هو واضح سيستقبل هذا الجزء (“Request.form(“Name اسم المستخدم من نموذج الإدخال، وسيضع القيمة في المتغير Name
وسيستقبل هذا الجزء(“Request.form(“Password الرقم السري من نموذج الإدخال، وسيضع القيمة في المتغير Password

Name=Request.form(“Name”) ‘admin.asp القيمة من النموذج في ، Name سيستقبل المتغير 
Password=Request.form(“Password”) 
‘admin.asp القيمة من النموذج في ، Password سيستقبل المتغير 

شرح لشروط التحقق من صحة المعلومات المدخلة في النموذج
1. If Name = “” Then: هذا الجزء سيتحقق إذا كان اسم المستخدم يساوي فراغ أي لم يدخل المستخدم اسما في نموذج الإدخال، إذا كان كذلك نفذ الأمر التالي:
(“response.redirect (“admin.asp?error=Name_Null ، أي انتقل إلى ملف admin.asp إذا كان اسم المستخدم يساوي فراغ، وأرسل إليه كذلك متغير اسمه error يحتوى على قيمة تساوي Name_Null ، للدلالة على وجود خطأ وهو عدم إدخال اسم المستخدم في النموذج.
الأمر respons.redirect ، تعني انتقل إلى صفحة معينة. ويجب تذكر عند استخدام هذا الأمر في أمثلة أخرى في المستقبل ، يجب أن يكون فوق <html> ، وبما أن هذه الصفحة لا تحتوي على <html> فليس علينا أن نبالي الآن. ثم نكتب بين الأقواس، اسم الملف المراد الانتقال إليه، وهو في مثالنا هذا (admin.asp).
وأردنا أن نرسل مع الملف متغير للدلالة على وجود خطأ. فكتبنا error=Name_Null ، أي أرسل متغير يحوي القيمة Name_Null ، وتستطيعون الرجوع للدرس السابق لاحقا لمراجعة كيفية استقبال هذا الخطأ والتعامل معه.
إذا كان Name لا يساوي فراغ ، سوف ينتقل للتحقق من الشرط التالي رقم 2.

If Name = “” Then  1. يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج لاسم المستخدم Name إذا كان 
response.redirect (“admin.asp?error=Name_Null”)
 ‘ Name_Null مع إرسال الخطأ admin.asp ارجع إلى صفحة

2. If Password = “” Then : هذا الجزء يتحقق إذا كان الرقم السري يساوي فراغ أي لم يدخل المستخدم الرقم السري في نموذج الإدخال. فعند تحقق هذا الشرط سيتم تنفيذ الشرط التالي:
(“response.redirect (“admin.asp?error=Pass_Null ، أي انتقل إلى ملف admin.asp إذا كان الرقم السري يساوي فراغ، وأرسل إليه كذلك متغير اسمه error يحتوى على قيمة تساوي Pass_Null ، للدلالة على وجود خطأ وهو عدم إدخال الرقم السري في النموذج.
إذا كان Password لا يساوي فراغ، سوف ينتقل إلى تحقيق الأمور التي تحت Else رقم 3

Else
If Password = “” Then 
‘2. يساوي فراغ ، أي لم يدخل المستخدم قيمة في النموذج للرقم السري Password إذا كان 
response.redirect (“admin.asp?error=Pass_Null”) 
‘ Pass_Null مع إرسال الخطأ admin.asp ارجع إلى صفحة

3. سوف ننتقل الآن بعد Else إلى التحقق من توافق المعلومات المدخلة في النموذج مع المعلومات الموجودة في قاعدة البيانات. أي هل اسم المستخدم والرقم السري موجودان في قاعدة البيانات أم لا.
فنتصل أولا بقاعدة البيانات، بإضافة ملف الربط (Connection.txt) بواسطة خاصية الإدراج Include File .
ثم نكتب أمر البحث عن اسم في ملف admin ، بحيث يساوي اسم المستخدم المدخل في النموذج ، فأضفنا الشرط “‘”& where name = ‘”& Name
أي استخرج لي سجلا من جدول admin ، بحيث يكون الاسم في السجل يساوي الاسم المدخل في النموذج . حيث أن where name = هذا هو الاسم في السجل، وهذا ‘”& Name &”‘ الاسم من النموذج.

SelectSql = “Select * from admin where name = ‘”& Name &”‘ Admin تحقق من وجود اسم المستخدم في جدول الإداريين 
set rs=ADO.execute (SelectSql)

4. If rs.EOF Then : يتحقق هذا الشرط إذا كان المتغير rs (وهذا من نوع خاص لاستقبال البيانات من قاعدة البيانات) يساويEOF :End Of the File ، أي أن المتغير منتهي ولم يسترجع أي سجل من الجدول لعدم وجود سجل يساوي الاسم فيه الاسم المدخل في النموذج. فعند تحقق هذا الشرط ، سيتنفذ هذا الأمر: (“response.Redirect (“admin.asp?error=Name_Entry 
أي انتقل إلى الملف admin.asp ، وأرسل له متغير error والذي يحوي على القيمة Name_Enry ، للدلالة على وجود خطأ في اسم المستخدم الذي تم إدخاله.
أما إذا كان الملف ليس EOF ، أي أنه يحوي على سجل مسترجع من جدول admin انتقل إلى الشرط رقم 5.

If rs.EOF Then ‘4. Name أي لا يوجد سجل في الجدول يحتوى على اسم المستخدم يساوي القيمة الموجودة في EOF يساوي rs إذا كان 
response.Redirect (“admin.asp?error=Name_Entry”) 
‘ Name_Entry مع إرسال الخطأ admin.asp ارجع إلى صفحة

5. If rs(“pass”) <> password Then : يتحقق هذا الشرط من أن الرقم السري المدخل في النموذج يساوي الرقم السري الموجود في الجدول. إذا كانا غير متساويان، سيتحقق الشرط وسينفذ هذا الأمر(“response.redirect (“admin.asp?error=Pass_Entry ، أي انتقل إلى صفحة admin.asp بإضافة إلى المتغير error والذي يحوي قيمة Pass_Entry ، ويدل على أن الرقم السري المدخل خطأ.
أما إذا كان الأمر السري المدخل صحيح ، انتقل إلى Else رقم 6

Else
If rs(“password”) <> password Then 
‘5. لا يساوي ، أي لم يدخل المستخدم رقم سري صحيح موجود في القاعدة rs(“password”) إذا كان 
response.redirect (“admin.asp?error=Pass_Entry”) 
‘ Pass_Entry مع إرسال الخطأ admin.asp ارجع إلى صفحة

6. بعد أن تأكدنا من صحة اسم المستخدم والرقم السري، سنقوم بحفظ اسم المستخدم في متغير ثابت بين الصفحات يسمى كوكي Cooky ، للتأكد فيما بعد في الصفحات الأخرى من أن الشخص قد قام بإدخال اسم المستخدم والرقم السري في البداية.
فسنقوم أولا بقراءة قيمة الاسم من الكوكي بهذا الأمر (“Name_Cooky= request.cookies(“Nam
فـ (“request.cookies(“Name_Cooky يعني استخرج لي قيمة الكوكي الذي اسمه Name_Cooky ، فالكلمة request تعني طلب الكوكي. ثم ضعه في المتغير Name_Cooky. ثم سننتقل للشرط السابع.
7 . هنا If Name_Cooky <> Name : سنختبر هل الاسم المدخل في النموذج Name ، يساوي الكوكيز. إذا لم يكن يساوي، احفظ الاسم المدخل من النموذج في الكوكي وستكون القيمة ثابتة بين الصفحات، حتى نعرفه فيما بعد عند التنقل بين الصفحات ونكتب أمر الحفظ بهذه الطريقةresponse.cookies (“Name”) = Name
أي خذ القيمة من Name واحفظها في الكوكي Name . فالكلمة response هنا تعني حفظ القيمة في الكوكي. وهذا الكوكي تنتهي صلاحيته، أي يختفي عند إغلاق المستخدم لصفحات الإنترنت كلها.
وبعد الشرط ، استخدمنا هذا الأمر (“response.Redirect (“adminsection.asp وهو يعني بعد تكوين الكوكي ، الآن يمكنك الدخول على صفحة الإدارة adminsection.asp 
فسينقل هذا الأمر المستخدم إلى صفحة adminsection.asp تلقائيا، بعد التأكد من صحة المعلومات وتكوين الكوكي.

Else6. أما إذا كان الرقم السري لاسم المستخدم المدخل صحيح 

Name_Cooky= request.cookies(“Name”) ‘ Name_Cooky افتح كوكيز الاسم وضعه في المتغير 

If Name_Cooky <> Name Then7. اختبر الكوكيز ، هل يساوي الاسم المدخل في النموذج 
response.cookies (“Name”) = Name 
 إذا لم يكون مساوي له ، فضع الاسم الجديد من النموذج في الكوكيز 

End IF

response.Redirect (“adminsection.asp”) ‘ انتقل إلى صفحة إدارة الموقع

End If

  • <LI dir=rtl>يمكنك مشاهدة الصفحة التي قمنا بتصميمها في هذا الدرس من خلال هذا الرابط: إدارة الموقع

إعداد: إماراتية

الكاتب ayman

ayman

مواضيع متعلقة

التعليقات مغلقة