Request-Werte als Variable setzen (Funktion)

edit | delete

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)