[(#ENV{متغير, قيمة إفتراضية})]
(منذ الاصدار ١.٨، ١.٨.١ من SPIP)
تتيح #ENV{variable}
الوصول الى متغيرات بيئة صفحة نموذجية (اي سياقها) [1].
ويمكن للصفحة الحصول على المتغير من عنوان URL (اي استفسار HTTP) او من الملف الذي يحتويها او حتى من نتائج ملء استمارة.
مثال متغير تم تمريره في عنوان URL: spip.php?rubrique24&id_mot=5
في rubrique.html، يساوي #ENV{id_mot}
٥.
مثال متغير تم تمريره في إدراج <INCLURE{fond=my_template} {id_article=136}>
INCLURE:
في my_template.html، يساوي #ENV{id_article}
١٣٦.
القيم الافتراضية
[(#ENV{متغير, قيمة إفتراضية})]
: العامل الاختياري قيمة إفتراضية يحتوي القيمة المسترجعة اذا لم يكن المتغير موجوداً (يعادل [(#ENV{متغير}|sinon{قيمة إفتراضية})]
).
وتظهر فائدة هذه العلامة بشكل أوضح عندما توجد صفحة نموذجية تدرجها عدة صفحات أخرى ونريد تصرف مختلف حسب السياق.
تخطي معالجات الأمان
يطبق SPIP افتراضياً دالتي interdire_scripts
وentites_html
على علامة #ENV
. ومثل العلامات الأخرى، يمكن إلغاء المعالجة الآلية بواسطة #ENV*
و#ENV**
(حول استخدام * و**، أنظر القال #BALISE* et #BALISE** ).
تسترجع #ENV*
المتغير دون تطبيق المرشح entites_html
عليه، وبالتالي دون تحويل الحروف الخاصة الى كيانات HTML.
أما #ENV**
، فتسترجع المتغير دون تطبيق دالة interdire_scripts
. وبالتالي تسترجع اوامر PHP المنفّذة. [2]
يمكن لهذا الأمر ان يتسبب بمشكلة أمان اذا تلقى المتغير اوامر PHP. لذلك وجدت دالة interdire_scripts
افتراضياً لمنع تنفيذ <
وأوامر من نوع <script language=php>
التي قد تدخل على المتغير.
الا ان #ENV**
تستخدم عندما ننشئ استمارة. فاستخدام النجمة المزدوجة يصبح ضرورياً في عرض استمارات CVT لاسترجاع جدول الأخطاء في صفحة الاستمارة: #ENV**{erreurs}|table_valeur{مفتاح}...