Joomla! Programmierung/Framework/JRequest/getVar
Inhaltsverzeichnis |
[Bearbeiten] Syntax
| Parameter | Datentyp | Beschreibung | Standardwert |
|---|---|---|---|
| $name | string | Name der abzufragenden Variable. | |
| $default | string | Standard Wert den die Variable erhält wenn kein Wert übergeben wurde oder die Variable nicht existiert. | null |
| $hash | string | Spezifizierung der zu benutzenden Built-in-Variable. (POST, GET, FILES, COOKIE, METHOD) | 'default' |
| $type | string | Anweisung zum Rückgabewert der Variable. Gültige Werte sind (INT, FLOAT, BOOLEAN, WORD, ALNUM, CMD, BASE64, STRING, ARRAY, PATH, NONE, USERNAME) | 'none' |
| $mask | int | Filter Maske der Variable. Mögliche Werte sind (JREQUEST_NOTRIM - verhindert das entfernen von Leerzeichen, JREQUEST_ALLOWRAW - umgeht alle Filter, JREQUEST_ALLOWHTML - erlaubt fast alles HTML. Ist dies nicht angegeben wird HTML standardmässig entfernt.) | 0 |
[Bearbeiten] Beispiele
name - In den meisten Fällen werden Sie Funktionen der JRequest Klassse nutzen um Requestvariablen auszulesen. Der häufigste Fall ist die Benutzung einer bestimmten Variable die sie entweder im GET oder im POST Teil des HTTP Requests befindet.
Wenn Sie eine Formvariable mit dem Namen address haben können Sie den folgenden Code benutzen um sie auszulesen:
$address = JRequest::getVar('address');
default - Wenn Sie $address auf diese Art zuweisen entfernt getVar() jeglichen HTML Code und abschliessende Leerzeichen. Wenn Sie einen Defaultwert angeben wollen für den Fall, dass sich address nicht im Request befindet oder zurückgesetzt wurde, benutzen Sie diesen Code:
$address = JRequest::getVar('address', 'Hier steht der Defaultwert');
hash - Oftmals wissen Sie bereits in welchem Teil des HTTP Request sich die Variable befindet (POST, GET, etc...). Ist dies der Fall, dann sollten sie dies explizit angeben. Damit erhöhen Sie ein wenig die Sicherheit Ihrer Anwendung. Wenn also address lediglich im POST vorkommen darf, benutzen Sie den folgenden Code um dies zu erzwingen:
$address = JRequest::getVar('address', 'Hier steht der Defaultwert', 'post');
// Die Arrayvariable cid aus dem POST request auslesen $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); // Den Wert eines Cookies auslesen $returning = JRequest::getVar( 'meincookie', '', 'cookie' );
[Bearbeiten] Quellcode
{ // Ensure hash and type are uppercase if ($hash === 'METHOD') { } $sig = $hash . $type . $mask; // Get the input hash switch ($hash) { case 'GET': $input = &$_GET; break; case 'POST': $input = &$_POST; break; case 'FILES': $input = &$_FILES; break; case 'COOKIE': $input = &$_COOKIE; break; case 'ENV': $input = &$_ENV; break; case 'SERVER': $input = &$_SERVER; break; default: $input = &$_REQUEST; $hash = 'REQUEST'; break; } if (isset($GLOBALS['_JREQUEST'][$name]['SET.' . $hash]) && ($GLOBALS['_JREQUEST'][$name]['SET.' . $hash] === true)) { // Get the variable from the input hash $var = self::_cleanVar($var, $mask, $type); } { { // Get the variable from the input hash and clean it $var = self::_cleanVar($input[$name], $mask, $type); // Handle magic quotes compatibility { $var = self::_stripSlashesRecursive($var); } $GLOBALS['_JREQUEST'][$name][$sig] = $var; } elseif ($default !== null) { // Clean the default value $var = self::_cleanVar($default, $mask, $type); } else { $var = $default; } } else { $var = $GLOBALS['_JREQUEST'][$name][$sig]; } return $var; }
[Bearbeiten] Siehe auch
- JRequest->getVar() auf api.joomla.org
- JFilterInput