SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Descarregar

#ENV

Març de 2010 — mis à jour le : Juliol de 2010

Totes les versions d’aquest article:

Etiqueta que permet obtenir el valor d’una variable facilitada per un #INCLURE o a partir d’un Url.


[(#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}...

 
 
 

Notes

[1Per seguretat, #ENV no recupera (ni mostra) mai les variables anomenades PHPSESSID o aquelles que el seu nom comença per var_ (com per exemple var_mode et var_profile).

[2imaginem un formulari molt simple:

<form method="get">
<input type="text" name="test" value="#ENV{test}"> <input type="submit">
</form>
#ENV{test}<br />
#ENV*{test}<br />
#ENV**{test}<br />

al formulari mostrat, entrem: <?php echo date('Y-m-d'); ?> a dins del camp «test», i, després, validem.

-  #ENV{test} enviarà (codi html): &lt;?php echo date('Y-m-d'); ?&gt;
-  #ENV*{test} retornarà (codi html): &lt;?php echo date('Y-m-d'); ?>
-  #ENV**{test} retornarà (codi html) : 2009-02-12 és a dir el php executat.


Descarregar l’esquelet d’aquesta pàgina Lloc Web fet amb l’SPIP | Espace de traduction | Espai privat