Vous êtes sur la page 1sur 3

Télécharger

Accueil > Documentation en français > Webmestres > Manuel de référence des boucles et balises > Balises > #ENV

#ENV
#ENV{parametre} récupère des variables d’environnement transmises au squelette. Un second
argument permet de donner une valeur par défaut si le paramètre demandé n’est pas présent
dans l’environnement ou si son contenu est vide.

SOMMAIRE
Description
Exemples
Exemples avancées
Court-circuiter les traitements de sécurité
Voir aussi

Description

[(#ENV{paramètre, valeur par défaut})]

Chercher dans un sous tableau


Le nom du paramètre d’environnement peut également contenir des barres obliques / indiquant
de chercher dans un sous tableau. Cette écriture est équivalente à l’appel du filtre |table_valeur
et est aussi valide sur les balises #GET, #SESSION et #CONFIG.

spip

#ENV{parametre/dans/un/tableau, valeur par défaut}
// équivalent à :
[(#ENV**{parametre}|table_valeur{dans/un/tableau, valeur par défaut})]

Enfin, la balise #ENV toute seule retourne un tableau sérialisé de tous les paramètres
d’environnement.

Exemples
Récupérer un identifiant d’article, sinon la chaîne « new » :
#ENV{id_article,new}

Récupérer dans une boucle les valeurs de l’id_rubrique et de l’id_mot passées dans l’URL
spip.php?rubrique24&id_mot=5

spip

<BOUCLE_art(ARTICLES){id_rubrique=#ENV{id_rubrique}}{id_mot=#ENV{id_mot}}>

Récupérer l’id_article passée dans un INCLURE :

<INCLURE{fond=mon_squelette, id_article=136}>

Dans mon_squelette.html, #ENV{id_article} vaut 136.

Exemples avancées
Avec dans l’URL ?afficher[articles]=oui, tester si on affiche les articles :

#ENV{afficher/articles} // affiche 'oui'

Afficher tout l’environnement (utile pour débugguer) :

[<pre>(#ENV**|unserialize|print_r{1})</pre>]

Important : Pour des questions de sécurité, il faudra absolument retirer ce code à la fin de


développement de votre site.

Court-circuiter les traitements de sécurité


Par défaut, SPIP applique les fonctions interdire_scripts() et |entites_html à la balise #ENV.
Comme pour toute balise, on peut supprimer les traitements automatiques de SPIP avec #ENV*
et #ENV** (voir, pour l’usage de * et **, l’article #BALISE* et #BALISE**).
- #ENV* retourne la variable sans appliquer le filtre |entites_html , donc sans transformer tous les
caractères spéciaux en entités HTML.

- #ENV** retourne la variable sans appliquer également la fonction interdire_scripts(). Elle renvoie
donc le PHP exécuté.
Ceci peut poser un problème de sécurité si cette variable reçoit une injection de code.

Néanmoins #ENV** trouve des applications, par exemple dans l’espace privé où la fonction
interdire_scripts() est appliquée de façon plus restrictive. #ENV** permet alors de lever ces
restrictions de façon très localisée. Mais encore une fois, à utiliser en connaissance de cause !

Voir aussi
<INCLURE> d’autres squelettes
Le filtre |setenv

Sur Programmer.spip.net

L’environnement #ENV (https://programmer.spip.net/L-environnement-ENV)


Transmettre des paramètres (https://programmer.spip.net/Transmettre-des-parametres)

Sur Code.spip.net

interdire_script()
(https://code.spip.net/autodoc/tree/ecrire/inc/texte.php.html#function_interdire_scripts)

Auteur Aurélie, cam.lafit, denisb Publié le : 14/02/09 (2009-02-14T14:48:34Z) Mis à jour :


25/04/19 (2019-04-25T12:15:29Z)
Traductions : [ar] ‫ﻋﺭﺑﻲ‬, català [ca], English [en], Español [es], français, Nederlands [nl],
русский [ru], Türkçe [tr], українська [uk]

Vous aimerez peut-être aussi