PHP-Funktion: Variablen aus POST/GET setzen
Autor: Ralf v.d.Mark
eingetragen: Montag, 23. Oktober 2017 um 09:11 Uhr (43/2017 Kalenderwoche)
geändert: Montag, 18. März 2024 um 14:39 Uhr (12/2024 Kalenderwoche)
Keywords: Variablen getPOST getGET getValue getWert gibWert
Kategorien: PHP,
Text:
Immer wiederkehrende Schreibweise, um die Post/Get-Variablen in einer PHP-Variable zu speichern.
Als Letztes ist eine kürzere Funktion eingefügt.
Quellcode:
<?php
/**
* Enthält Funktionen zur Filterung aus Post- oder Get-Arrays und setzt
* automatisch Konstanten "AUTOM_VDM_KONSTANTE_'.trim(VariablenName)"
* und "$GLOBALS['VDM']['getOrPost'][VariablenName]".
*
* PHP version 8.3
*
* @file function_gibWerteAusPostOderGet.php (s. a. "function_getValuesFromPostOrGet.php")
* mit Pfad: function_gibWerteAusPostOderGet.php
* @author Ralf von der Mark <ralf@website-vdm.de>, www.WebSite-vdM.de
* @copyright 2024, Ralf von der Mark
* @version 18.03.2024, GIT: No
*/
define('AUTOM_VDM_KONSTANTE_', 'Dummy! - Zur einfachen Schreibweise der Konstante!');
define('AUTOM_VDM_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_VDM_KONSTANTE_...".
*
* @param string $variablenName (Name des Key)
* @param string $defaultWert
* @param string $wertTyp (Standard ist STRING, 'INT', 'TRIM', 'TIME', 'ARRAY')
* HINWEIS: gibt bei INT keine Negativ-Werte zurueck!
* @param bool $wertSchuetzn (Standardmaessig wird PHP und HTML entfernt)
* @param string $checkMitEmptyOrIsset (Standardmäßig 'empty', wenn man 0 als 'INT' übergibt, dann sollte man 'isset' setzen)
*
* @return string (Wert des Array-Feldes)
*
* @example
* $einString = getWertFromPostOrGet('einString', null);
* $eineZahl = getWertFromPostOrGet('eineZahl', 0, 'INT');
* $eineZahlAuchNullen = getWertFromPostOrGet('eineZahlAuchNullen', 1, 'INT', true, 'isset');
*/
function gibWertAusPostOderGet($variablenName,
$defaultWert,
$wertTyp = 'ALL',
$wertSchuetzn = true,
$checkMitEmptyOrIsset = 'empty')
{
if ($checkMitEmptyOrIsset === 'isset') {
//Ausnahmsweise mit isset() prüfen
if (isset($_GET[$variablenName])) {
$variablenInhalt = $_GET[$variablenName];
} elseif (isset($_POST[$variablenName])) {
$variablenInhalt = $_POST[$variablenName];
} else {
$variablenInhalt = $defaultWert;//Standardwert!
}//ENDE: else ==> if (!empty($_POST[$variablenName]))
} else {
//Standardmäßig immer mit empty() prüfen
if (!empty($_GET[$variablenName])) {
$variablenInhalt = $_GET[$variablenName];
} elseif (!empty($_POST[$variablenName])) {
$variablenInhalt = $_POST[$variablenName];
} else {
$variablenInhalt = $defaultWert;//Standardwert!
}//ENDE: else ==> if (!empty($_POST[$variablenName]))
}//ENDE: else ==> if ($checkMitEmptyOrIsset === 'isset')
$wertTyp = strtoupper($wertTyp);
if (!empty($variablenInhalt) && $wertTyp !== 'ARRAY' && $wertSchuetzn === true) {
$variablenInhalt = strip_tags($variablenInhalt);
}//ENDE: if ($wertSchuetzn === true && $wertTyp !== 'ARRAY')
if ($wertTyp === 'INT') {
//Der POST-/GET-Wert soll nur Ganzzahlen-Werte enthalten.
$variablenInhalt = (int)$variablenInhalt;
//Negativ-Werte rausfiltern:
$variablenInhalt = ($variablenInhalt >= 0 ? $variablenInhalt : (int)$defaultWert);
} elseif (!empty($variablenInhalt) && $wertTyp === 'ARRAY') {
//Das POST-/GET-Feld ist als Array übergeben worden.
//ggf. was sinniges machen :-)
} elseif (!empty($variablenInhalt) && $wertTyp === 'TRIM') {
//Der POST-/GET-Wert soll getrimmt werden.
$variablenInhalt = trim($variablenInhalt);
} elseif (!empty($variablenInhalt) && $wertTyp === 'TIME') {
//Der POST-/GET-Wert soll in einen Time-Wert umgewandelt werden.
$variablenInhalt = strtotime($variablenInhalt);
}//ENDE: elseif () => if ($wertTyp === 'INT')
/** Variable ist so als automatische Konstante ueberall verfuegbar!
* Der Einfachheit halber verzichte ich auf Konstanten-Großschreibung. */
if (!defined('AUTOM_VDM_KONSTANTE_' . $variablenName)) {
define('AUTOM_VDM_KONSTANTE_' . $variablenName, $variablenInhalt);
}//ENDE: if ()
if ($wertTyp !== 'ARRAY' && !defined('AUTOM_VDM_KONST_LEN_' . $variablenName)) {
//Alles außer Array wird hier behandelt:
define('AUTOM_VDM_KONST_LEN_' . $variablenName, mb_strlen($variablenInhalt ?? ''));
} elseif ($wertTyp === 'ARRAY' && !defined('AUTOM_VDM_KONST_LEN_' . $variablenName)) {
//Wenn es ein Array ist, dann hier...
define('AUTOM_VDM_KONST_LEN_' . $variablenName, count($variablenInhalt ?? ''));
}//ENDE: else ==> if()
$GLOBALS['VDM']['getOrPost'][$variablenName] = $variablenInhalt;
return $variablenInhalt;
}//ENDE: function getWertFromPostOrGet()
/**
* 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_VDM_KONSTANTE_..."
* und schreibt das Array in $GLOBALS['VDM']['getOrPost'][...].
*
* @param string $variablenName (Name des Key)
*
* @return array (Array-Feldes)
*/
function gibArrayAusPostOderGet($variablenName)
{
if (empty($_GET[$variablenName]) && empty($_POST[$variablenName])) {
//Wenn beides leer, dann beenden!
$variablenInhalt = 0;
$arrayInhalt = [];
} 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 = '';//Standardwert!
}//ENDE: else ==> if (!empty($_POST['']))
$arrayInhalt = [];
}//ENDE: else ==> if ()
/** Variable ist so als automatische Konstante ueberall verfuegbar!
* Der Einfachheit halber verzichte ich auf Konstanten-Großschreibung. */
if (!defined('AUTOM_VDM_KONSTANTE_' . $variablenName)) {
define('AUTOM_VDM_KONSTANTE_' . $variablenName, $variablenInhalt);
}//ENDE: if ()
if (!defined('AUTOM_VDM_KONST_LEN_' . $variablenName)) {
define('AUTOM_VDM_KONST_LEN_' . $variablenName, mb_strlen($variablenInhalt));
}//ENDE: if ()
$GLOBALS['VDM']['getOrPost'][$variablenName] = $arrayInhalt;
return $variablenInhalt;
}//ENDE: function gibArrayAusPostOderGet()
/** Laesst nur Zahlen (mehr als 0) im Array zu!
* @param array $arr
* @return array
*/
function nurZahlenImArray($arr)
{
$arrSamml = [];
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)
/**
* Ralf vdM, 25.02.2024: Kurze Funktion aus...
* /download/string_umformer/piktoSymboleAnzeigen.php
* /TechDox/charUnicode_edit/piktoSymboleAnzeigen.php
*
* Holt jeden Parater aus POST oder GET
*
* @param string $nameKey (Welches Feld soll zurueckgegeben werden)
* @param string $defaultValue (optional, gibt es einen Standardwert, wenn leer)
* @param string $isInteger (Muss der Wert als Zahl deklariert werden)
*
* @return string (Wert der Variablen)
*
* @example
* 1.) setzePostUndGetAufVariable('navigation', 'index');
* 2.) setzePostUndGetAufVariable('id', 1, 1);
*/
function setzePostUndGetAufVariable($variablenName,
$defaultWert,
$wertTyp = 'ALL',
$wertSchuetzn = true)
{
if (isset($_POST[$variablenName])) {
$variablenInhalt = $_POST[$variablenName];
} elseif (isset($_GET[$variablenName])) {
$variablenInhalt = $_GET[$variablenName];
}//ENDE: elseif () ==> if (!empty($_POST[$variablenName]))
if ($wertSchuetzn === true && !empty($variablenInhalt)) {
$variablenInhalt = strip_tags($defaultWert); //Soll den Angriff erschweren!
}//ENDE: if ($wertSchuetzn === true)
if (empty($variablenInhalt)) {
$variablenInhalt = $defaultWert;//Standardwert einfüllen, wenn leer!
}//ENDE: if (empty($variablenInhalt))
if (!empty($variablenInhalt) && $wertTyp === 'INT') {
//Negativ-Werte rausfiltern:
return (int)((int)$variablenInhalt > 0 ?
$variablenInhalt : $defaultWert);
}
if (!empty($variablenInhalt) && $wertTyp === 'TRIM') {
return trim($variablenInhalt);
}
if (!empty($variablenInhalt) && $wertTyp === 'TIME') {
return strtotime($variablenInhalt);
}//ENDE: elseif () => if ()
return $variablenInhalt;//$wertTyp = 'ALL'
}//ENDE: function setzePostUndGetAufVariable(...)