La fonction _request()
permet de récupérer des variables envoyées par l’internaute, soit par l’URL, soit par un formulaire posté.
$nom = _request('nom');
Principes de sécurité
Ces fonctions ne doivent pas être placées n’importe où dans les fichiers de SPIP, ceci afin de connaître précisément les lieux possibles de tentatives de piratage. Les éléments issus de saisies utilisateurs ne devraient être récupérés que dans
- les fichiers d’actions (dans le répertoire
action/
), - les fichiers d’affichage privé (dans le répertoire
exec/
), - pour certaines très rares balises dynamiques (dans le répertoire
balise/
), - ou dans les fichiers de formulaires (dans le répertoire
formulaires/
).
Il faut en règle générale en plus, vérifier que le type reçu est bien au format attendu (pour éviter tout risque de hack, bien que SPIP effectue déjà un premier nettoyage de ce qui est reçu), par exemple, si vous attendez un nombre, il faut appliquer la fonction intval()
(qui transformera tout texte en valeur numérique) :
if ($identifiant = _request('identifiant')){
$identifiant = intval($identifiant);
}
Récupérer dans un tableau
Si vous souhaitez récupérer uniquement parmi certaines valeurs présentes dans un tableau, vous pouvez passer ce tableau en second paramètre :
// recupere s'il existe $tableau['nom']
$nom = _request('nom', $tableau);