_request

De functie _request() wordt gebruikt om de waarde van variabelen die door de bezoeker van de site worden doorgegeven, ofwel via de URL of via een formulier.

$name = _request('naam');

Veiligheidsprincipes

Deze functies mogen zich niet zomaar ergens tussen de SPIP-bestanden bevinden, om de mogelijke locaties die voor piraterij in aanmerking komen zorgvuldig te kunnen beperken. De elementen die door de input van de gebruiker worden geleverd, mogen alleen worden opgehaald van
* actiebestanden (in de map action/),
* de bestanden in het privé gedeelte (in de map exec/),
* enkele zeer uitzonderlijke dynamische bakenfuncties (in de map balise/), of
* in de bestanden die webformulieren verwerken (in de map formulaires/).

Als extra algemene regel is het noodzakelijk om te controleren of het ontvangen variabele type inderdaad in het verwachte formaat is (om elk risico van hacken uit te sluiten, zelfs als SPIP al een eerste niveau van opschoning van invoergegevens uitvoert): als je bijvoorbeeld een getal verwacht, dan moet je de intval() functie toepassen (die elke tekst in zijn numerieke waarde omzet):

if ($identifiant = _request('identifier')){
	$identifier = intval($identifier);
}

Vanuit een tabel

Als je alleen bepaalde specifieke waarden uit een tabel wilt opvragen, kun je die tabel als tweede parameter doorgeven:

// haal op als een $table['naam'] bestaat
$name = _request('naam', $table);

Voorbeeld

Haal alleen de waarden op die in de URL zijn doorgegeven:

$name = _request('naam', $_GET);

Auteur hanjo Gepubliceerd op: Aangepast: 12/03/23

Vertalingen: English, français, Nederlands