عالم النور

القرآن الكريم     قصص الأنبياء     علماء العرب     تعلم معنا     تعلم ASP     دليل المواقع    بطاقات إلكترونية
الأديب     كلمات على الورق     علي الطنطاوي     جميل بثينة      المنتديات


البطاقات الإلكترونية

تعلم ASP

دليل المواقع المتميزة


أقسام الموقع



بحث


 تعلم ASP > الدروس الأساسية > الدرس السابع عشر


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

 ستقوم باستقبال القيم المدخلة في نموذج 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  ارجع إلى صفحة

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

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

                             If    Name_Cooky  <>  Name   Then
'7.   اختبر الكوكيز ، هل يساوي الاسم المدخل في النموذج  
                                    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 تلقائيا، بعد التأكد من صحة المعلومات وتكوين الكوكي.

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

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

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

       End IF

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

End If


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

  • لسحب صفحة الدخول لإدارة الموقع: إدارة الموقع

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


تصميم وتطوير خالد الحر ، عالم النور