/**
الوصف: مشكلات صغيرة تحتاج إلى الانتباه إليها عند استخدام كائن طلب ASP المؤلف: Ci Qinqiang
البريد الإلكتروني: [email protected]
**/
في ASP، يعد كائن الطلب كائنًا مهمًا جدًا للحصول على البيانات المرسلة من قبل العميل، والجميع على دراية به.
ومع ذلك، كثيرًا ما يسألني الناس ما هي الاختلافات بين طرق الكتابة التالية وكيف ينبغي كتابتها؟
strMessage = طلب("msg")
strMessage = Request.Form("msg")
علاوة على ذلك، فقد رأيت رموزًا كتبها العديد من الأشخاص، وكلها مكتوبة بطريقة Request("") بالطبع، لا حرج في طريقة الكتابة هذه.
ولكن يجب على الجميع الانتباه
يحتوي كائن الطلب على عدة مجموعات للحصول على البيانات المقدمة من قبل العميل، والمجموعات شائعة الاستخدام هي QueryString وForm وServerVariables.
بغض النظر عن نوع المجموعة، يمكن الحصول عليها مباشرة من خلال الطلب (""). هناك مشكلة هنا
احصل على طريقة الحصول على طريقة النشر وأرسل نفس المتغير، مثل اسم المستخدم=cqq، ثم استخدم Request("اسم المستخدم")
هل يتم أخذ البيانات من Get أو البيانات من Post؟
لذا، عندما يصل السؤال إلى هذه النقطة، يجب على الجميع التفكير في الأمر. يأخذ الطلب البيانات من هذه المجموعات بالترتيب من الأمام إلى الخلف وهو QueryString، ثم Form، وأخيرًا ServerVariables. يبحث كائن الطلب عن المتغيرات في هذه المجموعات بهذا الترتيب. إذا كان هناك تطابق، فسوف يتوقف وسيتم تجاهل الباقي. لذلك المثال أعلاه طلب ("اسم المستخدم")
ما يتم الحصول عليه فعليًا هو البيانات المقدمة بواسطة طريقة Get.
لذلك، من أجل تحسين الكفاءة، وتقليل وقت البحث غير الضروري، وكذلك لتوحيد البرنامج، يوصى باستخدام طريقة جمع الطلب، مثل Request.Form("اسم المستخدم").
فيما يلي مثال اختباري، بعد الإرسال، يمكنك إضافة ?username=aaa مباشرةً بعد العنوان المراد اختباره:
<%
إذا كان الطلب ("إرسال")<>"" إذن
Response.اكتب "احصل مباشرة:"& Request("اسم المستخدم") & "<br>"
Response.اكتب "الحصول على:" & Request.QueryString("اسم المستخدم") و"<br>"
Response.اكتب "الحصول على المشاركة:" & Request.Form("اسم المستخدم") & "<br>"
انتهي إذا
%>
<اسم النموذج = نموذج 1 الإجراء = "" الطريقة = المنشور>
<نوع الإدخال=اسم الاختبار = "اسم المستخدم" القيمة = "postuser">
<نوع الإدخال = اسم الإرسال = "إرسال" القيمة = "اختبار">
</النموذج>