Joomla! Programmierung/Framework/JRequest/getVar

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[Bearbeiten] Syntax

static getVar( $name, [$default], [$hash], [$type], [$mask] )
  • @return mixed Die angeforderte Variable.
  • @since Joomla 1.5
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

JRequest::getVar in Joomla! 2.5.4

Folder blue.png libraries

  • Folder red.png joomla
    • Folder green.png environment
      • File php.png request.php
  1. public static function getVar($name, $default = null, $hash = 'default', $type = 'none', $mask = 0)
  2. {
  3. // Ensure hash and type are uppercase
  4. $hash = strtoupper($hash);
  5. if ($hash === 'METHOD')
  6. {
  7. $hash = strtoupper($_SERVER['REQUEST_METHOD']);
  8. }
  9. $type = strtoupper($type);
  10. $sig = $hash . $type . $mask;
  11.  
  12. // Get the input hash
  13. switch ($hash)
  14. {
  15. case 'GET':
  16. $input = &$_GET;
  17. break;
  18. case 'POST':
  19. $input = &$_POST;
  20. break;
  21. case 'FILES':
  22. $input = &$_FILES;
  23. break;
  24. case 'COOKIE':
  25. $input = &$_COOKIE;
  26. break;
  27. case 'ENV':
  28. $input = &$_ENV;
  29. break;
  30. case 'SERVER':
  31. $input = &$_SERVER;
  32. break;
  33. default:
  34. $input = &$_REQUEST;
  35. $hash = 'REQUEST';
  36. break;
  37. }
  38.  
  39. if (isset($GLOBALS['_JREQUEST'][$name]['SET.' . $hash]) && ($GLOBALS['_JREQUEST'][$name]['SET.' . $hash] === true))
  40. {
  41. // Get the variable from the input hash
  42. $var = (isset($input[$name]) && $input[$name] !== null) ? $input[$name] : $default;
  43. $var = self::_cleanVar($var, $mask, $type);
  44. }
  45. elseif (!isset($GLOBALS['_JREQUEST'][$name][$sig]))
  46. {
  47. if (isset($input[$name]) && $input[$name] !== null)
  48. {
  49. // Get the variable from the input hash and clean it
  50. $var = self::_cleanVar($input[$name], $mask, $type);
  51.  
  52. // Handle magic quotes compatibility
  53. if (get_magic_quotes_gpc() && ($var != $default) && ($hash != 'FILES'))
  54. {
  55. $var = self::_stripSlashesRecursive($var);
  56. }
  57.  
  58. $GLOBALS['_JREQUEST'][$name][$sig] = $var;
  59. }
  60. elseif ($default !== null)
  61. {
  62. // Clean the default value
  63. $var = self::_cleanVar($default, $mask, $type);
  64. }
  65. else
  66. {
  67. $var = $default;
  68. }
  69. }
  70. else
  71. {
  72. $var = $GLOBALS['_JREQUEST'][$name][$sig];
  73. }
  74.  
  75. return $var;
  76. }

[Bearbeiten] Siehe auch

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge