يتم استخدام جميع القيم المقدمة عندما يقوم المستخدم بملء محتوى صفحة <FORM>، أو إدخال القيمة بعد عنوان URL في شريط عنوان المتصفح، بواسطة البرنامج النصي ASP من خلال مجموعات النموذج وQueryString. هذه طريقة بسيطة للوصول إلى القيم في كود ASP.
1. الأساليب العامة للوصول إلى مجموعات ASP
تشبه المجموعات العادية الموجودة في VB. على نحو فعال، فهي عبارة عن صفائف من القيم، ولكن يمكن الوصول إليها باستخدام مفتاح سلسلة نصية (وهو غير حساس للحجم) وفهرس عدد صحيح. ولذلك، إذا كانت صفحة ويب العميل تحتوي على <FORM> كما يلي:
<FORM ACTION="show_request.asp" METHOD="POST">
الاسم الأول:<نوع الإدخال=”النص” الاسم=”الاسم الأول”>
اسم العائلة:<نوع الإدخال=”النص” الاسم=”اسم العائلة”>
<نوع الإدخال=”إرسال” القيمة=”إرسال”>
</FORM>
يمكنك الوصول إلى القيمة الموجودة في عنصر التحكم الخاص بها عن طريق الوصول إلى مجموعة نماذج ASP:
strFirstName = Request.Form("FirstName")
لـ strLastName = Request.Form("LastName")
استخدام الفهرس الصحيح لعناصر التحكم في النموذج. يبدأ نطاق الفهرس من عنصر التحكم الأول المحدد في HTML، ثم يتم فرزه وفقًا لترتيب التعريف:
strFirstName =. نموذج الطلب(1)
strLastName = Request.Form(2)
ومع ذلك، لا يوصى باستخدام الأسلوب الأخير لاستخدام فهرسة الأعداد الصحيحة، لأنه بمجرد تغيير عنصر التحكم في HTML، أو إدراج عنصر تحكم جديد، سيحصل رمز ASP على القيمة الخاطئة. علاوة على ذلك، فهو مربك للغاية للأشخاص الذين يقرؤون الكود.
1) للوصول إلى جميع قيم المجموعة،
يمكنك تحويل سلسلة من القيم في النموذج بأكمله إلى متغير حرف واحد عن طريق الرجوع إلى المجموعة دون توفير مفتاح أو فهرس.
StrAllFormContent = Request.Form
إذا كان مربع النص يحتوي على قيم Priscilla وDescartes، فسوف تقوم عبارة Request.Form بإرجاع الأحرف التالية:
FirstName=Priscilla&LastName=Descartes
لاحظ أن القيم المقدمة تظهر في شكل أزواج اسم/قيمة (أي اسم عنصر التحكم = قيمة التحكم)، ويتم فصل كل زوج من الاسم/القيمة عن بعضهما البعض بالرمز "&". تعد هذه التقنية مفيدة إذا كنت تخطط لتمرير محتويات النموذج إلى تطبيق منفصل قابل للتنفيذ أو DLL يتوقع أن تكون القيم بتنسيق قياسي. بشكل عام، ومع ذلك، يتم الوصول إلى محتويات المجموعة باستخدام اسم عنصر التحكم الموجود في النموذج كمفتاح نص.
2) اجتياز مجموعة ASP
هناك طريقتان لاجتياز جميع الأعضاء في مجموعة ASP. الأساليب هي في الأساس نفس مجموعات VB العادية. توفر كل مجموعة خاصية العدد، والتي تقوم بإرجاع عدد العناصر الموجودة في المجموعة. يمكن اجتيازه باستخدام خاصية Count باستخدام فهرس عدد صحيح.
بالنسبة لـ intLoop=1 إلى Request.Form.Count
استجابة.كتابة طلب.نموذج (intLoop) و"<BR>"
التاليإذا
كان النموذج السابق يحتوي على مربعي نص بقيم بريسيلا وديكارت، فسوف تحصل على النتائج التالية:
بريسيلا
ديكارت
هو النهج الأفضل وهو استخدام البنية لكل...التالي.
لكل objItem في Request.Form
Response.Write objItem & "=" & Request.Form(objItem) & "<BR>"
التالي
وتتمثل فائدة ذلك في أنه يمكنك الوصول إلى كل من اسم عنصر التحكم وقيمته. سيؤدي الكود أعلاه إلى ما يلي:
الاسم الأول = Priscilla
LastName = Descartes
لاحظ أن قيم <FORM> التي ترجعها بعض المتصفحات إلى ASP قد لا تكون هي نفس الترتيب المعروض على الصفحة.
3) الطبيعة المتعددة القيم لأعضاء المجموعة
في بعض الحالات، قد يكون لكل عضو في مجموعة ASP أكثر من قيمة واحدة ويحدث هذا عندما يكون هناك عدة عناصر تحكم في تعريف HTML لها نفس سمة الاسم. على سبيل المثال:
<FORM ACTION=”Show_request.asp” METHOD=”POST”>
<نوع الإدخال=”النص” الاسم=”هواية أخرى”>
<نوع الإدخال=”النص” الاسم=”هواية أخرى”>
<نوع الإدخال=”النص” الاسم=”هواية أخرى”>
<نوع الإدخال=”إرسال” القيمة=”إرسال”>
</FORM>
في مجموعة النماذج، سيتم إنشاء إدخال لـ "OtherHobby". ومع ذلك، فإنه سيتضمن القيم من مربعات النص الثلاثة. إذا ترك المستخدم حقلاً واحدًا أو أكثر فارغًا عند الإرسال، فستكون القيمة التي تم إرجاعها عبارة عن سلسلة فارغة. إذا قام المستخدم بإدخال Gardening وMountaineering في مربعي النص الأول والثالث على التوالي، وكان مربع النص الثاني فارغًا، فإن الوصول إلى Request.Form("OtherHobby") في رمز ASP الخاص بنا سيعيد السلسلة:
Gardening, ,Mountaineering
To be قادرًا على للوصول إلى قيمة واحدة في هذه الحالة، يمكنك استخدام تعليمات برمجية أكثر تعقيدًا:
For Each objItem In Request.Form
إذا كان Request.Form(objItem).Count > 1، فعندئذٍ "أكثر من قيمة واحدة في هذا العنصر Response. اكتب objItem & ":<BR>"
بالنسبة لـ intLoop = 1 إلى Request.Form(objItem).Count
الاستجابة.اكتب "المفتاح الفرعي" & intLoop & "القيمة = "& Request.Form(objItem) (intLoop) & "<BR>"
التالي
آخر
Response.Write objItem & “=” & Request.Form(objItem) & “<BR>”
نهاية إذا
التاليبالنسبة
لمثيل النموذج السابق الذي يحتوي على ثلاثة عناصر تحكم OtherHobby، فسيُرجع هذا:
OtherHobby:
قيمة المفتاح الفرعي 1 = البستنة
قيمة المفتاح الفرعي 2 =
قيمة المفتاح الفرعي 3 = تسلق الجبال
ومع ذلك، نظرًا لأنه من النادر إعطاء مربعات نص متعددة نفس الاسم، نادرًا ما يتم استخدام هذه التقنية.
أ) عناصر التحكم في زر الاختيار أو الصفحة في HTML
في HTML، الموقف الذي يلزم فيه إعطاء العديد من عناصر التحكم نفس سمة الاسم هو زر الاختيار (أو الخيار)، على سبيل المثال:
<FORM ACTION="show_request.asp" METHOD=" POST ">
أعيش في:
<نوع الإدخال=”اسم الراديو”=”البلد” القيمة=”AM”>أمريكا<BR>
<نوع الإدخال=”اسم الراديو”=”البلد” القيمة=”الاتحاد الأوروبي”>أوروبا<BR>
<نوع الإدخال=”اسم الراديو”=”البلد” القيمة=”AS”>آسيا<BR>
<نوع الإدخال=”إرسال” القيمة=”إرسال”>
</FORM>
نظرًا لأنه لا يمكن للمستخدم سوى تحديد عنصر واحد فقط من العناصر المتعددة (ولهذا السبب يتم إعطاؤهم نفس الاسم)، سيتم الحصول على قيمة إرجاع واحدة فقط، ويمكن للمتصفح فقط إرسال قيمة عنصر التحكم المحدد. ولذلك، إذا قام مستخدم هذا النموذج بتحديد "Europez"، فسيتم الحصول على هذا الإدخال، وسيتم الحصول على قيمته عن طريق اجتياز مجموعة النماذج:
البلد = الاتحاد الأوروبي
نظرًا لتوفير سمة VALUE مختلفة لكل عنصر تحكم، فإنها تعكس القيمة المقابلة لكل إدخال اسم البلد أو المنطقة. إذا تم حذف سمة VALUE، فسيقوم المتصفح بإرجاع القيمة "on"، لذلك ستحصل على:
Country = on
لا يتم استخدام هذا غالبًا، لذلك يتم استخدام سمة VALUE بشكل عام لعناصر التحكم في الراديو بنفس الاسم.
ب) التحكم في خانة الاختيار HTML
عندما تحتوي التعليمات البرمجية المصدر لـ HTML في النموذج على عنصر تحكم خانة الاختيار، يتم إعطاؤه اسمًا فريدًا بشكل عام، على سبيل المثال:
<FORM ACTION="show_request.asp" METHOD="POST">
أنا أستمتع:
<نوع الإدخال=”صندوق الاختيار” الاسم=”القراءة” تم التحقق منه> القراءة
<نوع الإدخال=”صندوق الاختيار” الاسم=”الأكل”>الأكل
<نوع الإدخال=”صندوق الاختيار” الاسم=”النوم”> النوم
<نوع الإدخال=”إرسال” القيمة=”إرسال”>
</FORM>
في هذه الحالة، عند إرسال النموذج، إذا تم تحديد (وضع علامة) خانتي الاختيار الأول والثالث فقط، عند اجتياز مجموعة النموذج، سيتم الحصول على القيم التالية:
القراءة = تشغيل
Sleeping = on
ومع ذلك، إذا قمت بتوفير قيمة لكل مربع اختيار، فسيتم إرسال هذه القيمة إلى الخادم بدلاً من السلسلة "on". على سبيل المثال، يكون النموذج كما يلي:
<FORM ACTION="show_request.asp" METHOD="POST">
أنا أستمتع:
<نوع الإدخال=”صندوق الاختيار” القيمة=”Hobby025” الاسم=”الهواية” المحددة>_
سباحة
<نوع الإدخال=”صندوق الاختيار” القيمة=”Hobby003” الاسم=”الهواية” المحددة>_
قراءة
<نوع الإدخال=”صندوق الاختيار” القيمة=”Hobby068” الاسم=”هواية”>الأكل
<نوع الإدخال=”صندوق الاختيار” القيمة=”Hobby010” الاسم=”هواية”>النوم
<نوع الإدخال=”إرسال” القيمة=”إرسال”>
</FORM>
إذا تم إرسال كافة خانات الاختيار باستثناء خانة الاختيار الثالثة، فسوف تنتج مجموعة Request.Form النتائج التالية:
Hobby = Hobby025، Hobby003، Hobby010
إذا كتبت رمز اجتياز المجموعة الأكثر تعقيدًا، كما ذكرنا سابقًا (يتم عرض كل مفتاح فرعي بشكل منفصل) ، تحصل على النتيجة:
الهواية:
قيمة المفتاح الفرعي 1 = Hobby025
قيمة المفتاح الفرعي 2 = Hobby003
قيمة المفتاح الفرعي 3 = Hobby010
تجدر الإشارة إلى أنه في حالتين، لا يُرجع عنصر التحكم غير المحدد أي قيمة على الإطلاق. في نتيجة الحالة الأولى لا توجد فواصل خادعة، ولا توجد قيم فارغة في الحالة الثانية. وهذا يختلف عن نتائج الاختبار المكافئ باستخدام مربعات النص الموضحة أعلاه. عند استخدام مربعات النص، يقوم كل مربع نص بإرجاع قيمة، حتى لو كانت سلسلة فارغة. يحدث هذا بسبب المتصفح ولذلك، يجب الانتباه إلى هذه المشكلة عند الوصول إلى المجموعات في كود ASP.
أحد الآثار الجانبية الصعبة للموقف أعلاه هو أنه عند استخدام مربعات الاختيار، لا يكون لفهرس قيمة خانة الاختيار أي علاقة بموضع عنصر التحكم في HTML الأصلي. في المثال أعلاه، تحتوي خانة الاختيار الرابعة على رقم مفتاح فرعي 3. لأنه عند إرسال النموذج، لا يتم تحديد عنصر التحكم الثاني.
ج) التحكم في قائمة HTML
يتم استخدام علامة <SELECT> في HTML لإنشاء مربع قائمة منسدلة قياسي، يتم تمثيل قيمه بطريقة هجينة مثيرة للاهتمام. يتم إنشاء النموذج التالي بـ 5 قيم ليختار منها المستخدم، وبما أنه يحتوي على السمة MULTIPLE، فمن الممكن تحديد أكثر من إدخال عن طريق الضغط باستمرار على مفتاح Shift أو Ctrl أثناء التحديد.
<إجراء نموذجي=”show_request.asp” الطريقة=”POST”>
<حدد الاسم=”الهواية” الحجم=”5” متعدد>
<قيمة الخيار=”Hobby001”>البرمجة</OPTION>
<قيمة الخيار=”Hobby025”>السباحة</الخيار>
<قيمة الخيار=”Hobby003”>القراءة</الخيار>
<قيمة الخيار=”Hobby068”>الأكل</الخيار>
<قيمة الخيار=”Hobby010”>النوم</الخيار>
</اختيار><P>
<نوع الإدخال=”إرسال” القيمة=”إرسال”>
</FORM>
تُرجع إدخالاً واحدًا في مجموعة النماذج، والذي يحتوي على القيم المحددة (سمة VALUE المحددة في علامة <OPTION> واحدة)، مفصولة بفواصل:
Hobby = Hobby025، Hobby003، Hobby010
إذا باستخدام كود اجتياز مجموعة أكثر تعقيدًا قليلاً (يظهر كل مفتاح فرعي على حدة)، نحصل على:
الهواية:
قيمة المفتاح الفرعي 1 = Hobby025
قيمة المفتاح الفرعي 2 = Hobby003
قيمة المفتاح الفرعي 3 = Hobby010
هذا هو نفس الوضع كما هو مذكور أعلاه بالنسبة لمربع الاختيار الذي يحمل نفس الاسم. في الواقع، يمكن اعتبار قائمة SELECT بمثابة قائمة من خانات الاختيار لتحديد (وليس تحديد) العناصر المقابلة.
ومع ذلك، يحتوي مربع القائمة أيضًا على قيمة محددة إذا قمت بتعيين سمة VALUE في علامة <OPTION>، فستحصل على محتوى النص للخيار المحدد، وستحتوي مجموعة Request.Form على هذا العنصر:
Hobby = Swimming،. القراءة والنوم
، وبالمثل، فإن كود تكرار المجموعة الأكثر تعقيدًا سيعرض نتائج مثل هذه:
الهواية:
قيمة المفتاح الفرعي 1 = السباحة
قيمة المفتاح الفرعي 2 = القراءة
قيمة المفتاح الفرعي 3 = النوم
بالطبع، إذا تم تحديد عنصر واحد وتم توفير سمة VALUE في <OPTION>، فستحتوي النتيجة فقط على:
Hobby = Hobby025
إذا لم يتم توفير سمة VALUE، فستكون النتيجة:
Hobby =
يؤدي هذا إلى فقدانالخيار
Provincial (أي أنه لا يوجد VALUE) ويعرض نص الخيار ويمكنه أيضًا إجراء التغييرات المقابلة. الحالة الأخيرة مفيدة للغاية في مواقف معينة، مثل عندما تريد عرض (سلسلة وصفية) وتمرير محتوى مختلف تمامًا (مثل استخدام رمز قصير لتمثيل سلسلة وصفية).
د) تعتبر مربعات الاختيار وعناصر التحكم في الصورة
وأزرار الاختيار في HTML أمثلة على عناصر التحكم المنطقية التي تظهر "تشغيل" عند تحديدها أو تحديدها. وعلى عكس مربعات النص ومعظم عناصر تحكم HTML الأخرى، لا تشتمل المتصفحات على عناصر تحكم غير محددة أو محددة لم يتم تحديده.
هناك عنصر تحكم منطقي آخر شائع الاستخدام يسمى زر HTML. مثل أنواع <INPUT TYPE="SUBMIT">، و<INPUT TYPE="RESET">، و<INPUT TYPE="IMAGE">، و<INPUT TYPE="BUTTON">، و<BUTTON>...</BUTTON>.
لا تُرجع عناصر التحكم من النوع BUTTON أي قيمة لأنه ليس لها أي تأثير مباشر على النموذج. حتى إذا كنت تستخدم طريقة الإرسال المستخدمة لاستدعاء النموذج، فلن يقوم المتصفح بتضمين قيمة عنصر التحكم في نوع BUTTON في أي طلب. وبالمثل، لا يتم إرسال قيمة الزر <INPUT TYPE="RESET"> إلى الخادم أبدًا.
ومع ذلك، فإن عناصر التحكم في زر الإدخال من النوع SUBMIT وIMAGE تقوم فعليًا بإرسال النموذج إلى الخادم، وتحتوي خصائص VALUE الخاصة بها على قيم عناصر التحكم الأخرى في النموذج (طالما تم تضمين سمة NAME في تعريف HTML). على سبيل المثال، قد يكون هذا النموذج جزءًا من تطبيق ويب من نوع المعالج الذي يسمح للمستخدم بالتنقل عبر عملية أو إلغائها:
<FORM ACTION="show_request.asp" METHOD="POST">
<نوع الإدخال=”إرسال” الاسم=”btnSubmit” القيمة=”التالي”>
<نوع الإدخال=”إرسال” الاسم=”btnSubmit” القيمة=”السابق”>
<نوع الإدخال=”اسم الإرسال”=”btnSubmit” القيمة=”إلغاء”>
</FORM>
في النموذج، يمكنك تضمين أزرار إرسال متعددة. في هذه الحالة، يجب إعطاء كل زر سمة VALUE فريدة، كما هو موضح أعلاه. عند إرسال نموذج، سيؤدي اجتياز قيم مجموعة Request.Form إلى إنتاج قيمة تعتمد على الزر الذي تم الضغط عليه لإرسال النموذج. إذا ضغط المستخدم على الزر "السابق"، فسيحصل على:
btnSubmit = السابق
لذلك يمكن الاستعلام عن مجموعة Request.Form لتحديد الصفحة المعروضة التالية، على سبيل المثال:
Select Case Request.Form("btnSubmit")
الحالة "التالي"
الاستجابة.إعادة توجيه "page_3.asp"
الحالة "السابقة"
الاستجابة.إعادة توجيه "page_1.asp"
حالة "إلغاء"
الاستجابة.إعادة توجيه "main_menu.asp"
إنهاء التحديد
وفي الوقت نفسه، يمكنك أيضًا استخدام سمات NAME مختلفة لكل زر حسب الحاجة. وحدد اسم عنصر التحكم الذي توجد قيمته في مجموعة النماذج. مفيد للغاية في المواقف التي لا يحتوي فيها عنصر التحكم على علامة كاملة ولكن بدلاً من ذلك يتبعه تسمية نصية أطول، كما هو موضح في الصورة أدناه.
يتم إنشاء الواجهة الموجودة على هذه الشاشة بواسطة التعليمة البرمجية التالية:
<FORM ACTION="show_request.asp" METHOD="POST">
<B>ماذا تريد أن تفعل الآن؟ </B><P>
<نوع الإدخال=”إرسال” الاسم=”btnNext” القيمة= ”>انتقل إلى الصفحة التالية<P>
<INPUT TYPE=”SUBMIT” NAME=”btnPrevious” Value=” “> العودة إلى الصفحة السابقة<P>
<INPUT TYPE=”SUBMIT” NAME=”btnCancel” VALUE=” “>إلغاء والعودة إلى صفحة القائمة الرئيسية<P>
</FORM>
في صفحة ASP، بعد تلقي البيانات، يمكنك التحقق من القيمة المقدمة بواسطة اسم الزر لتحديد الزر الذي تم الضغط عليه.
إذا كان Len(Request.Form("btnNext")) ثم Response.Redirect "page_3.asp"
إذا كان Len(Request.Form("btnPrevious")) ثم Response.Redirect "page_1.asp"
إذا كان Len(Request.Form("btnCancel")) ثم Response.Redirect "main_menu.asp"
هذه المهمة هي الاستعلام عن مجموعة ASP على مفتاح وإرجاع سلسلة فارغة إذا لم تكن موجودة. بمعنى آخر، إذا تم الضغط على الزر الثاني (الصفحة السابقة)، فإن قيمة Request.Form("btnNext") عبارة عن سلسلة فارغة، وطولها صفر بدون إنشاء خطأ. عند الضغط على الزر الثاني، ستكون قيمة هذا الإدخال في مجموعة النماذج، Request.Form("btnPrevious")، " " وطوله أكبر من الصفر.
هـ) تحسين كفاءة استخدام مجموعة الطلبات يعد
الوصول إلى مجموعة ASP لتنزيل قيمة عملية تستغرق وقتًا طويلاً ومكثفة من الناحية الحسابية لأن العملية تتضمن سلسلة من عمليات البحث عن المجموعات ذات الصلة، وهي أبطأ بكثير من الوصول إلى متغير محلي. ولذلك، إذا كنت تخطط لاستخدام قيمة في المجموعة عدة مرات على الصفحة، فيجب أن تفكر في تخزينها كمتغير محلي، على سبيل المثال:
strTitle = Request.Form("Title")
strFirstName = Request.Form("الاسم الأول")
strLastName = Request.Form("LastName")
إذا كان Len(stTitle) ثم strTitle = strTitle & ""
إذا كان strFirstName = "" إذن
StrFullName = strTitle & " " & strLastName
ElseIf Len(strFirstName) = 1 إذن
StrFullName = strTitle & strFirstName & "· " & strLastName
آخر
StrFullName = strTitle & strFirstName & " " & strLastName
End If
f) البحث في جميع مجموعات الطلبات
في بعض الحالات، من الممكن معرفة أن الاسم الرئيسي للقيمة سيظهر في مجموعة الطلبات، ولكن ليس بالضبط المجموعة التي تنتمي إليها. على سبيل المثال، إذا قامت عدة صفحات (أو أقسام مختلفة من الصفحة) بإرسال قيمة إلى نفس البرنامج النصي لـ ASP، فقد تظهر في مجموعة النموذج أو سلسلة الاستعلام.
لمعرفة سبب ظهور قيمة في مجموعات مختلفة، خذ في الاعتبار هذا الموقف: يتم طلب صفحة باستخدام عنصر الارتباط التشعبي <A>. في هذه الحالة، الطريقة الوحيدة لإضافة قيمة إلى الطلب هي إضافتها إلى عنوان URL. ومع ذلك، قد تظهر نفس القيمة بالفعل في <FORM> على صفحة أخرى، أو في جزء مختلف من نفس الصفحة:
...
<FORM ACTION=”process_page.asp” METHOD=”POST”>
<نوع الإدخال=”إرسال” الاسم=”الصفحة” القيمة=”التالي”>
<نوع الإدخال=”إرسال” الاسم=”الصفحة” القيمة=”السابق”>
<نوع الإدخال=”إرسال” الاسم=”الصفحة” القيمة=”مساعدة”>
</نموذج>
...
...
للحصول على مساعدة، انتقل إلى <A HREF=”process_page.asp?page=Help”>صفحة المساعدة</A>
...
في هذه الحالة، سيؤدي الضغط على زر التعليمات الموجود في النموذج إلى إرسال زوج الاسم/القيمة "page=Help" من مجموعة Request.Form. ومع ذلك، فإن الضغط على الارتباط التشعبي <A> قد يؤدي أيضًا إلى إرسال الاسم/القيمة "Page=Help"، ولكن هذه المرة في مجموعة QueryString. للوصول إلى هذه القيمة، استخدم ميزة خاصة لكائن طلب ASP:
strPage = Request("page")
سيؤدي هذا إلى البحث في المجموعة بأكملها - QueryString، Form، Cookies، ClientCertificate، ServerVariables - بالترتيب، حتى يتم العثور على اسم أول قيمة مطابقة. يعد القيام بذلك أقل كفاءة من الوصول إلى المجموعة المناسبة مباشرة، وهو غير آمن ما لم يكن هناك ضمان مطلق بأن القيمة لن تظهر في مجموعة أخرى.
على سبيل المثال، قد ترغب في جمع اسم خادم الويب الذي يلبي طلب العميل من خلال البحث عن "SERVER_NAME" في مجموعة Request.ServerVariables التي تظهر في كل استعلام. ومع ذلك، إذا كانت أي مجموعة أخرى تحتوي أيضًا على قيمة تسمى "server_name" (تذكر أن أسماء المفاتيح ليست حساسة لحالة الأحرف)، فستحصل على نتائج غير صحيحة عند استخدام Request("server_name"). باستخدام صيغة Reqeust.ServerVariables("server_name")، سنواجه صعوبة في تتبع الأخطاء.
باختصار، استخدم تقنية "البحث في كل المجموعة" بحذر شديد وفقط عندما لا توفر أي تقنية أخرى النتائج التي تحتاجها.
ز) الوصول إلى مجموعات أخرى
في هذا القسم من هذه المقالة، ركزنا على مجموعة النماذج، والتي ربما تكون الأكثر استخدامًا. ومع ذلك، فإن كل هذه التقنيات تنطبق بالتساوي على الأشياء الأخرى. بما في ذلك تلك التي توفرها مجموعات كائن الطلب (أي النموذج وQueryString وملفات تعريف الارتباط ومتغيرات الخادم وClientCertificate) وملفات تعريف الارتباط (والمجموعات المقدمة بواسطة كائنات أخرى) التي يوفرها كائن الاستجابة.
سنلقي نظرة سريعة على كيفية إدخال القيمة في مجموعة QueryString، بالإضافة إلى مزاياها وعيوبها. ومع ذلك، تحتوي كلتا مجموعتي ملفات تعريف الارتباط على وظائف إضافية تجعل استخدام ملفات تعريف الارتباط أكثر ملاءمة، كما هو موضح أدناه.