Request-Werte als Variable setzen (Funktion)
Autor: Ralf v.d.Mark
eingetragen: Donnerstag, 23. Februar 2017 um 15:02 Uhr (8/2017 Kalenderwoche)
geändert: Freitag, 31. März 2017 um 11:37 Uhr (13/2017 Kalenderwoche)
Keywords: GET POST Request Werte Variable function
Kategorien: PHP,
Text:
Request-Werte als Variable setzen (Funktion)
Funktionen zur Filterung aus Post- oder Get-Arrays und setzt automatisch Konstanten "AUTOMGSBTOOLKONSTANTE_'.trim(VariablenName)" und "$GLOBALS['GSBTOOL']['getOrPost'][VariablenName]".
Quellcode:
/** Zur einfachen Schreibweise der Konstante in Eclipse: */
define('AUTOM_GSBTOOL_KONSTANTE_', 'Dummy! - Zur einfachen Schreibweise der Konstante!');
/** Integer! Zur einfachen Schreibweise der Konstante in Eclipse: */
define('AUTOM_GSBTOOL_KONST_LEN_', 'Dummy! - Integer! Zur einfachen Schreibweise der Konstante!');
/**
* Bei Nennung des Key-Namens aus POST/GET gibt die Funktion
* als RETURN den Wert zurueck und
* definiert jeden Wert aus POST/GET als Konstante
* beginnend mit dem Namen "AUTOM_GSBTOOL_KONSTANTE_...".
*
* @param string $variablenName (Name des Key)
* @param string $defaultWert
* @param string $wertTyp ('INT' fuer Integer, Standard ist String)
* HINWEIS: gibt bei INT keine Negativ-Werte zurueck!
* @param bool $wertSchuetzn (Standardmaessig wird PHP und HTML entfernt)
*
* @return string (Wert des Array-Feldes) */
function getWertFromPostOrGet($variablenName,
$defaultWert,
$wertTyp = 'ALL',
$wertSchuetzn = true)
{
if ($wertSchuetzn === true) {
$strip_tags = 'strip_tags'; //Soll den Angriff erschweren!
} else {
$strip_tags = null; //Vorsicht!
}//ENDE: else => if ($wertSchuetzn === true)
if (!empty($_GET[$variablenName])) {
$variablenInhalt = $strip_tags($_GET[$variablenName]);
} elseif (!empty($_POST[$variablenName])) {
$variablenInhalt = $strip_tags($_POST[$variablenName]);
} else {
$variablenInhalt = $strip_tags($defaultWert);//Standardwert!
}//ENDE: else ==> if (!empty($_POST[$variablenName]))
if (!empty($variablenInhalt) && $wertTyp == 'INT') {
$variablenInhalt = (INT)$variablenInhalt;
//Negativ-Werte rausfiltern:
$variablenInhalt = ($variablenInhalt > 0 ?
$variablenInhalt : $defaultWert);
} elseif (!empty($variablenInhalt) && $wertTyp == 'TRIM') {
$variablenInhalt = trim($variablenInhalt);
} elseif (!empty($variablenInhalt) && $wertTyp == 'TIME') {
$variablenInhalt = strtotime($variablenInhalt);
}//ENDE: elseif () => if ()
/** Variable ist so als automatische Konstante ueberall verfuegbar!
* Der Einfachheit halber verzichte ich auf Konstanten-Großschreibung. */
if (!defined('AUTOM_GSBTOOL_KONSTANTE_'.$variablenName)) {
define('AUTOM_GSBTOOL_KONSTANTE_'.$variablenName, $variablenInhalt);
}//ENDE: if ()
if (!defined('AUTOM_GSBTOOL_KONST_LEN_'.$variablenName)) {
define('AUTOM_GSBTOOL_KONST_LEN_'.$variablenName, (INT)strlen($variablenInhalt));
}//ENDE: if ()
$GLOBALS['GSBTOOL']['getOrPost'][$variablenName] = $variablenInhalt;
return $variablenInhalt;
}//ENDE: function getWertFromPostOrGet()
/** Wird z B fuer Checkboxen und POST-Arrays gebraucht;
* Bei Nennung des Key-Namens aus POST/GET gibt die Funktion
* als RETURN die kommagetrennten Array-Werte zurueck und
* definiert diesen String auch als Konstante
* beginnend mit dem Namen "AUTOM_GSBTOOL_KONSTANTE_..."
* und schreibt das Array in $GLOBALS['GSBTOOL']['getOrPost'][...].
*
* @param string $variablenName (Name des Key)
*
* @return array (Array des Feldes)
*/
function getArrayFromPostOrGet($variablenName)
{
if (empty($_GET[$variablenName]) && empty($_POST[$variablenName])) {
//Wenn beides leer, dann beenden!
$variablenInhalt = 0;
$arrayInhalt = array();
} elseif (!empty($_GET[$variablenName]) && is_array($_GET[$variablenName])) {
//Wenn ein Array ist, dann speichern
$arrayInhalt = nurZahlenImArray($_GET[$variablenName]);
$variablenInhalt = implode(',', $arrayInhalt);
} elseif (!empty($_POST[$variablenName]) && is_array($_POST[$variablenName])) {
//Wenn ein Array ist, dann speichern
$arrayInhalt = nurZahlenImArray($_POST[$variablenName]);
$variablenInhalt = implode(',', $arrayInhalt);
} else {
//hier einfach zurueckgeben
if (!empty($_POST[$variablenName])) {
$variablenInhalt = $_POST[$variablenName];
} elseif (!empty($_GET[$variablenName])) {
$variablenInhalt = $_GET[$variablenName];
} else {
$variablenInhalt = null;//Standardwert!
}//ENDE: else ==> if (!empty($_POST['']))
$arrayInhalt = array();
}//ENDE: else ==> if ()
/** Variable ist so als automatische Konstante ueberall verfuegbar!
* Der Einfachheit halber verzichte ich auf Konstanten-Großschreibung. */
if (!defined('AUTOM_GSBTOOL_KONSTANTE_'.$variablenName)) {
define('AUTOM_GSBTOOL_KONSTANTE_'.$variablenName, $variablenInhalt);
}//ENDE: if ()
if (!defined('AUTOM_GSBTOOL_KONST_LEN_'.$variablenName)) {
define('AUTOM_GSBTOOL_KONST_LEN_'.$variablenName, (INT)strlen($variablenInhalt));
}//ENDE: if ()
$GLOBALS['GSBTOOL']['getOrPost'][$variablenName] = $arrayInhalt;
return $variablenInhalt;
}//ENDE: function getArrayFromPostOrGet()
/** Laesst nur Zahlen im Array zu!
* @param array $arr
* @return array */
function nurZahlenImArray($arr)
{
$arrSamml = array();
if (is_array($arr) && count($arr) > 0) {
foreach ($arr as $key => $wert) {
$wert = (INT)$wert;
if ($wert > 0) {
$arrSamml[$key] = $wert;
}//ENDE: if ()
}//ENDE: foreach
}//ENDE: if (is_array($arr) && count($arr) > 0)
return $arrSamml;
}//ENDE: function nurZahlenImArray($arr)