بعد/الحصول على روابط في المضرب
-
29-09-2019 - |
سؤال
هل هناك طريقة مدمجة للوصول إلى معلمات Post/الحصول على معلمات في المضرب؟ extract-binding
والأصدقاء يفعلون ما أريد ، ولكن هناك ملاحظة قاسية تتعلق حول المخاطر الأمنية المحتملة المتعلقة بتحميلات الملفات التي تختتم
لذلك ، نوصي بعدم استخدامها ، لكن يتم توفيرها للتوافق مع الكود القديم.
أفضل ما يمكنني أن أحضره هو (وسامحني مقدمًا)
(bytes->string/utf-8 (binding:form-value (bindings-assq (string->bytes/utf-8 "[field_name_here]") (request-bindings/raw req))))
لكن هذا يبدو معقدًا بشكل غير ضروري (ويبدو أنه سيعاني من بعض الأخطاء نفسها الموثقة في قسم الارتباط).
هل هناك طريقة قياسية أكثر أو أقل ، غير محدودة للحصول على قيمة ما بعد/الحصول على المتغير ، بالنظر إلى اسم الحقل وطلب؟ أو الأفضل من ذلك ، طريقة لاستعادة مجموعة من القيم بعد/الحصول على قائمة/قائمة تجزئة/قائمة؟ باستثناء أي من هؤلاء ، هل هناك وظيفة من شأنها أن تفعل الشيء نفسه ، ولكن فقط للمتغيرات ما بعد ، يتجاهل؟
المحلول
ربط الاستخراج أمر سيء لأنه غير حساس للحالة ، وهو فوضوي للغاية بالنسبة للمدخلات التي تعود عدة مرات ، وليس لديها طريقة للتعامل مع تحميلات الملفات ، ويفترض تلقائيًا أن كل شيء هو UTF-8 ، وهو ليس صحيحًا بالضرورة. إذا كنت تستطيع قبول هذه المشكلات ، فلا تتردد في استخدامها.
يعمل المقتطف الذي كتبته عندما تكون البيانات UTF-8 وعندما يكون هناك عودة حقل واحدة فقط. يمكنك تحديدها هي وظيفة وتجنب كتابتها عدة مرات.
بشكل عام ، أوصي باستخدام Formlets للتعامل مع النماذج وقيمها.
الآن أسئلتك ...
"هل هناك طريقة قياسية أكثر أو أقل ، غير حكومية للحصول على قيمة منشور/متغير ، بالنظر إلى اسم الحقل وطلب؟"
ما لديك هو الشيء القياسي ، على الرغم من أنك تفترض خطأً أن هناك قيمة واحدة فقط. عندما يكون هناك متعددة ، ستحتاج إلى تصفية الروابط على اسم الحقل. وبالمثل ، أنت لا تفعل بحاجة إلى لتحويل القيمة إلى سلسلة ، يمكنك تركها كبايت على ما يرام.
"أو الأفضل من ذلك ، طريقة لاستعادة مجموعة من القيم بعد/الحصول على قائمة/قائمة تجزئة/قائمة؟"
هذا ما يفعله الطلب/RAW. إنها قائمة ملزمة؟ أشياء. ليس من المنطقي تحويله إلى تجزئة بسبب إرجاع القيمة المتعددة.
"باستثناء أي من هؤلاء ، هل هناك وظيفة من شأنها أن تفعل الشيء نفسه ، ولكن فقط للمتغيرات النشر ، يحصل التجاهل؟"
يخفي خادم الويب الفرق بين المنشورات ويحصل منك. يمكنك فحص بيانات URI و RAW النشر لاستعادتها ، ولكن عليك تحليلها بنفسك. لا أوصي به.
جاي