أهم شيء لتعلم ASP هو إتقان الكائنات الستة المضمنة في ASP. إذا لم تكن قد تعرضت لها من قبل، فأنت ذكي بما يكفي لتجاهل هذه المفاهيم وتعرف فقط كيفية استخدامها أن مفتاح تعلم ASP في البداية هو نسخه. الشيء الأكثر أهمية هو إتقان الكائنات الستة المضمنة في ASP. في الواقع، في المحاضرة السابقة، تعلمنا بالفعل عن كائن الاستجابة وطريقة الكتابة الأكثر استخدامًا وطريقة إعادة التوجيه وخاصية انتهاء الصلاحية في كائن الاستجابة. عندما ترى مفاهيم الأشياء والأساليب والخصائص والمجموعات والأحداث (لا أعرف أيًا منها!)، إذا لم تتعرض لها من قبل، فأنت ذكي ولا تهتم بهذه المفاهيم. فقط أعرف كيفية استخدامها. وجهة نظري هي أن هذه مجرد البداية. دعونا نستمر في تعلم كائن الطلب من خلال الأمثلة، لتعميق فهمنا، يرجى تشغيل هذه البرامج لرؤية نتائج الإخراج.
1. استخدم Request.ServerVariables للحصول على متغيرات البيئة. هذا الجزء بسيط جدًا، ولكن المحتوى الذي تم الحصول عليه مهم جدًا. يرجى الاطلاع على المثال التالي:
انسخ رمز الكود كما يلي:
<%@ اللغة=VBScript %>
<HTML><الجسم>
<% 'wuf8.asp
الاستجابة.كتابة المسار لتشغيل ملف ASP: &_
Request.ServerVariables(Script_Name) & <Br>
تقوم Response.Write بإرجاع طول بيانات المحتوى: &_
Request.ServerVariables(Content_Length) & <Br>
تقوم Response.Write بإرجاع عنوان IP الخاص بالعميل: &_
Request.ServerVariables(Remote_Addr) و<Br>
الاستجابة.اكتب اسم المتصفح: &_
Request.ServerVariables(HTTP_USER_AGENT) و<Br>
تقوم Response.Write بإرجاع المسار الفعلي الفعلي إلى الصفحة الرئيسية: &_
Request.ServerVariables(APPL_PHYSICAL_PATH) و<Br>
%>
<جدول colspan=8 cellpadding=5 حدود=0>
<تر>
<td align=CENTER bgcolor=#800000 width=109> <font style=ARIAL NARROW color=#ffffff size=2>اسم متغير البيئة</font></td>
<td align=CENTER width=459 bgcolor=#800000> <font style=ARIAL NARROW color=#ffffff size=2>المحتوى</font></td>
</tr>
<تر>
<td bgcolor=f7efde align=CENTER> <font style=ARIAL NARROW size=2>
النتيجة1
</font></td>
<td bgcolor=f7efde align=CENTER> <font style=ARIAL NARROW size=2>
النتيجة2
</font></td></tr>
</الجدول>
</BODY></HTML>
الآن، يجب أن تكتشف مدى سهولة روتين wuf2.asp في المحاضرة السابقة!
ملاحظة: إن ترميز HTML الموجود في الجزء الأخير من هذا البرنامج هو مجرد تحضير للمثال التالي، لذا لا تتفاجأ. إذًا، ما هي متغيرات البيئة الأخرى الموجودة؟ ستعرف من خلال تشغيل المثال التالي (هذا البرنامج قام بحذف بعض الأكواد، من الأفضل تنزيل البرنامج المصدر من موقعي لتسهيل الفهم).
انسخ رمز الكود كما يلي:
<%@ اللغة=VBScript %>
<% 'wuf9.asp
الخيار صريح
خافت سيفرت
%>
<HTML><الجسم>
<جدول colspan=8 cellpadding=5 حدود=0>
<تر>
<td align=CENTER bgcolor=#800000 width=109> <font style=ARIAL NARROW color=#ffffff size=2>اسم متغير البيئة</font></td>
<td align=CENTER width=459 bgcolor=#800000> <font style=ARIAL NARROW color=#ffffff size=2>النتائج</font></td>
</tr>
<%
لكل Sv في Request.ServerVariables
الاستجابة.اكتب<tr>
Response.Write <td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>
الاستجابة.اكتب سيفرت
الاستجابة.اكتب </font></td>
Response.Write <td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>
استجابة.كتابة الطلب.متغيرات الخادم (Sv)
الاستجابة.اكتب </font></td></tr>
التالي
%>
</الجدول>
</BODY></HTML>
A For... يتم استخدام كل حلقة هنا لسرد كافة العناصر الموجودة في المجموعة. إذا لم تفهم النصف الثاني، فيرجى مقارنة wuf8.asp وإلقاء نظرة على نتائج التشغيل وفهمها بعناية (ما هو موقفك؟).
2. نقل البيانات إلى الخادم من خلال النموذج (يمكن فهم ذلك أيضًا على أنه كيفية قراءة الخادم للبيانات المرسلة من قبل العميل)
إذا كنت قد عملت على صفحة رئيسية، فيجب أن تعلم أن العديد من الصفحات الرئيسية تستخدم عادةً نماذج النماذج للسماح للمستخدمين بإدخال البيانات، ثم إرسال البيانات من خلال زر الإرسال. توجد طريقتان رئيسيتان في النموذج: POST وGET، بعد الإجراء، عادةً ما يتم تحديد ملف .cgi أو .pl أو .asp.
(1) إذا كنت تستخدم طريقة POST لإرسال البيانات، فاستخدم Request.Form لقراءة البيانات.
قم أولاً بتحرير ملف wuf10.htm التالي ليتمكن المستخدمون من إدخال البيانات:
انسخ رمز الكود كما يلي:
<أتش تي أم أل>
<body bgcolor=#FFFFFF>
<طريقة النموذج=إجراء النشر=wuf11.asp>
الاسم: <نوع الإدخال=اسم النص=اسمك><br>
الجنس: <اختر الاسم=الجنس>
<الخيار>ذكر</option>
<الخيار>أنثى</option>
</اختر> <br>
الرسالة: <textarea name=message>مرحبًا!
انتبه إلى معالجة النص متعدد الأسطر</textarea> <br>
الهوايات (اضغط باستمرار على مفتاح Ctrl لتحديد عدة):
<اختر الاسم=حجم الهواية المتعدد=4>
<خيار>الكمبيوتر</option>
<option>التسوق</option>
<option>أفلام</option>
<خيار>القراءة</option>
</اختر> <br>
<نوع الإدخال=اسم الإرسال=قيمة الإرسال=إرسال>
<نوع الإدخال=اسم إعادة التعيين=قيمة الإرسال2=إعادة التعيين>
</النموذج>
</الجسم>
</html>
ثم اكتب ملف wuf11.asp الذي يحتاج wuf10.htm إلى استخدامه لجمع البيانات:
انسخ رمز الكود كما يلي:
<%@ اللغة=VBScript %>
<% 'wuf11.asp
الخيار صريح
الاستجابة.انتهاء الصلاحية=0
خافت StrName، StrGender، StrM، StrMsg
StrName = Trim(Request.Form(yourname)) 'يتم استخدام وظيفة القطع لإزالة المسافات البادئة والزائدة
StrGender = Trim(Request.Form(gender))
StrM = Trim(Request.Form(message))
StrMsg = استبدال(StrM,vbcrlf,<Br> & vbcrlf)
'vbcrlf يعادل مجموعة إرجاع السطر وتغذية السطر. أما بالنسبة لوظيفة الاستبدال، فإن وظيفتها هي استبدال vbcrlf في السلسلة StrM بـ <Br> & vbcrlf (يرجى التفكير في استخدام vbcrlf هذا؟ ستفهم ذلك من خلال النظر إلى كود مصدر HTML لملف الإخراج، يرجى الرجوع). إلى تعليمات VBScript للحصول على التفاصيل.
%>
<HTML><الجسم>
الاسم: <%= StrName%><Br><Br>
الجنس: <%= StrGender%><Br><Br>
الرسالة: <br><br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
في الواقع، يتم أيضًا تمرير قيمة زر الإرسال: <Br>
<%= نموذج الطلب(إرسال)%><Br><Br>
<% 'افهم أولاً ما ورد أعلاه، ثم تعرف على كيفية قراءة الخيارات المتعددة إذا كنت مهتمًا
الرد.اكتب عدد الهوايات المختارة إجمالاً: & Request.Form(hobby).Count & <Br>
خافت أنا
لأني = 1 إلى Request.Form(hobby).Count
استجابة.اكتب طلب.نموذج(هواية)(I) و<Br>
التالي
%>
</BODY></HTML>
في هذا المثال، لسهولة الفهم، نستخدم برنامجين. في الواقع، يمكنك أيضًا استخدام برنامج واحد فقط. إذا كنت مهتمًا، يرجى الاطلاع على الروتين التالي wuf12.asp، والذي سيساعد على تعميق فهمك لمتغيرات البيئة.
انسخ رمز الكود كما يلي:
<%@ اللغة=VBScript %>
<% 'wuf12.asp
الخيار صريح
الاستجابة.انتهاء الصلاحية=0
خافت StrName، StrGender، StrM، StrMsg
إذا Request.ServerVariables(Content_Length) <> 0 ثم
'بعد إرسال البيانات، لن يكون الطول 0، لذا قم بتنفيذ العبارة التالية لعرض النتيجة
'تم نسخ الجزء التالي بالفعل من wuf11.asp
StrName = Trim(Request.Form(yourname))
StrGender = Trim(Request.Form(gender))
StrM = Trim(Request.Form(message))
StrMsg = استبدال(StrM,vbcrlf,<Br> & vbcrlf)
%>
<HTML><الجسم>
الاسم: <%= StrName%><Br><Br>
الجنس: <%= StrGender%><Br><Br>
الرسالة: <br><br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
<%
الرد.اكتب عدد الهوايات المختارة إجمالاً: & Request.Form(hobby).Count & <Br>
خافت أنا
لأني = 1 إلى Request.Form(hobby).Count
استجابة.اكتب طلب.نموذج(هواية)(I) و<Br>
التالي
%>
</BODY></HTML>
<%
آخر
'عند تحميل الصفحة لأول مرة، لا يتم تقديم أي بيانات، لذلك لا يتم تنفيذ الجزء السابق، بل يبدأ من هنا.
'وهذا هو سبب وجود زوجين من <HTML></HTML>
'فقط انسخ wuf10.htm أدناه.
'تم استبدال <form Method=post action=wuf11.asp> بمتغيرات البيئة، ولكنه هو نفسه تمامًا
Response.Write لرؤية النتيجة: & Request.ServerVariables(Script_name) & <Br>
%>
<HTML><الجسم>
<طريقة النموذج=الإجراء اللاحق=<%= Request.ServerVariables(Script_name)%>>
الاسم: <نوع الإدخال=اسم النص=اسمك><br>
الجنس: <اختر الاسم=الجنس>
<الخيار>ذكر</option>
<الخيار>أنثى</option>
</اختر> <br>
الرسالة: <textarea name=message>مرحبًا!
انتبه إلى معالجة النص متعدد الأسطر</textarea> <br>
الهوايات (اضغط باستمرار على مفتاح Ctrl لتحديد عدة):
<اختر الاسم=حجم الهواية المتعدد=4>
<خيار>الكمبيوتر</option>
<option>التسوق</option>
<option>أفلام</option>
<خيار>القراءة</option>
</اختر> <br>
<نوع الإدخال=اسم الإرسال=قيمة الإرسال=إرسال>
<نوع الإدخال=اسم إعادة التعيين=قيمة الإرسال2=إعادة التعيين>
</النموذج>
</BODY></HTML>
<%النهاية إذا%>
(2) إذا كنت تستخدم طريقة GET لإرسال البيانات، فاستخدم Request.Querystring لقراءة البيانات.
قم أولاً بتحرير ملف wuf13.htm التالي ليتمكن المستخدمون من إدخال البيانات:
<أتش تي أم أل>
<body bgcolor=#FFFFFF>
<طريقة النموذج=الحصول على الإجراء=wuf14.asp>
الاسم باللغة الإنجليزية: <نوع الإدخال=اسم النص=الاسم> <br>
الاسم الصيني: <نوع الإدخال=اسم النص=Cname><br>
الجنس: <اختر الاسم=الجنس>
<الخيار>ذكر</option>
<الخيار>أنثى</option>
</اختر> <br>
<نوع الإدخال=اسم الإرسال=قيمة الإرسال=إرسال>
<نوع الإدخال=اسم إعادة التعيين=قيمة الإرسال2=إعادة التعيين>
</النموذج>
</الجسم>
</html>
ثم اكتب ملف wuf14.asp الذي يحتاج wuf13.htm إلى استخدامه لجمع البيانات:
<%@ اللغة=VBScript %>
<% 'wuf14.asp
الخيار صريح
الاستجابة.انتهاء الصلاحية=0
خافت StrCname، StrEname، StrGender
StrEname = Trim(Request.QueryString(Ename)) 'يتم استخدام وظيفة القطع لإزالة المسافات البادئة والزائدة
StrCname = Trim(Request.QueryString(Cname))
StrGender = Trim(Request.QueryString(gender))
%>
<HTML><الجسم>
الاسم باللغة الإنجليزية: <%= StrEname%><Br><Br>
الاسم الصيني: <%= StrCname%><Br><Br>
الجنس: <%= StrGender%><Br><Br>
ألق نظرة على السلسلة المقدمة: <Br>
<%= Request.ServerVariables(Query_String)%>
</BODY></HTML>
من أجل فهم هذا البرنامج بشكل أفضل، من الأفضل تجربة تأثير الروتين wuf13.htm في المتصفح أولاً، وإلقاء نظرة على نتائج الإخراج، وستجد أن السلسلة الطويلة في شريط العناوين تبدو مألوفة، تمامًا مثل متى البحث على Yahoo Seen هو نفسه إلى حد كبير. في هذا الوقت، تحاول إدخال http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=女 مباشرة في شريط العناوين، وتحصل على نفس النتيجة. لذلك يمكنك رؤية الأمر بهذه الطريقة، نتيجة wuf13.htm هي الحصول على رابط بمعلمات مثل هذه. يقرأ Request.QueryString كل البيانات من المعلمات الإضافية لعنوان http://.
في الواقع، عند الضغط على زر الإرسال، سيتم إلحاق سلسلة الاستعلام (بيانات الإدخال) بعنوان URL في شكل معلمات (يتم فصل كل معلمة بواسطة &) لتحقيق غرض نقل البيانات. في الوقت نفسه، يرجى ملاحظة أنه لا توجد لغة صينية في سلسلة الاستعلام المعروضة في المتصفح، ولكن هناك أحرف مشوهة لا يمكن التعرف عليها وتحتوي على علامات النسبة المئوية، وذلك لأنها مشفرة. أخيرًا، كما كان من قبل، يمكن أيضًا دمج هذين البرنامجين في برنامج واحد (روتين wuf15.asp، تحتاج إلى تنزيله من موقعي).
بعض الملاحظات :
1. إذا كنت تستخدم أسلوب POST لإرسال البيانات، Request.ServerVariables(Content_Length)>0.
إذا كنت تستخدم أسلوب GET لإرسال البيانات، فإن Request.ServerVariables(Query_String) <>.
2. بعد فهم المبدأ، يمكنك مزج Request.Form وRequest.QueryString في نفس ملف ASP.
3. إذا كان هناك عدة أزرار في النموذج، فكيف يمكنك تحديد الزر الذي ضغط عليه المستخدم؟ إذا انتبهت، فستجد أن هناك جملة في wuf11.asp الروتينية مفادها أن قيمة زر الإرسال يتم إرسالها أيضًا، ويمكن العثور على قيمة مماثلة في سلسلة الاستعلام التي تم إنشاؤها في wuf13.htm. يرجى ملاحظة: يتم نقل قيمة الزر المضغوط فقط، ويتم نقل قيم الأزرار الأخرى، وهذا هو أساس الحكم ("يحتوي موقع InfoWeb على أخبار التخطيط الصينية على مقالة مماثلة).