[(#ENV{variable, valeur_par_defaut})]
(a partir d’SPIP 1.8)
#ENV{variable}
permet accedir a les variables d’entorn d’un esquelet (el seu context) [1].
L’esquelet pot rebre aquesta variable o bé del URL (la petició HTTP), o bé del fitxer que l’inclou, o bé fins i tot d’un retorn de formulari.
Exemple de variable passada a l’url : spip.php?rubrique24&id_mot=5
A dins de rubrique.html, #ENV{id_mot}
val 5.
Exemple de variable passada en un INCLURE :<INCLURE{fond=mon_squelette} {id_article=136}>
A dins de mon_squelette.html, #ENV{id_article}
val 136.
Valor per defecte
[(#ENV{variable, valeur_par_defaut})]
: el paràmetre opcional valeur_par_defaut conté el valor que ha de ser retornat si la variable no existeix (equivalent a [(#ENV{variable}|sinó {valeur_par_defaut})]
).
Útil quan un esquelet està inclòs a partir de diferents esquelets, i del que s’espera un comportament diferent segons el context.
Saltar-se els tractaments de seguretat
Par defecte, SPIP aplica les funcions interdire_scripts
i entites_html
a l’etiqueta #ENV
. Com per tota etiqueta, es pot suprimir els tractaments automàtics d’SPIP amb #ENV*
i #ENV**
(veure, per l’ús de * i **, l’article #BALISE* i #BALISE**).
#ENV*
retorna la variable sense aplicar el filtre entites_html
, per tant, sense transformar tots els caràcters especials en entitats HTML.#ENV**
retorna la variable sense aplicar la funció interdire_scripts
. Retorna, per tant, el PHP executat. [2]
Això pot suposar un problema de seguretat si aquesta variable rep una injecció de codi. Aquest és el motiu del perquè interdire_scripts
és allà per defecte per invalidar els <
i altres <script language=php>
que hi hagi a la variable.
No obstant #ENV**
troba una aplicació quan es construeix un formulari. D’aquesta manera, l’’ús de la doble estrella és necessària en la visualització de formularis CVT. Per exemple, per recuperar la taula d’errors a l’esquelet del formulari: #ENV**{erreurs}|table_valeur{clef}...