_request

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);

Exemple

Récupérer uniquement parmi les valeurs transmises dans l’URL :

$nom = _request('nom', $_GET);

Auteur Matthieu Marcillaud Publié le : Mis à jour : 12/03/23

Traductions : English, français