Rubens: stripslashes/mysql_escape_string überprüfen?

Hi,

nun mache ich also bei allen datenbankrelevanten Eingaben diese beiden Komandos.

$_POST['Kategorie'] = stripslashes($_POST['Kategorie']);
 $_POST['Kategorie'] = mysql_escape_string($_POST['Kategorie']);

Geht das auch in einer Zeile?

Und wie kann ich aber überprüfen, ob jetzt alle Einträge in Oednung sind, die nun noch durchgehen, d.h. was dürfte nicht mehr durchkommen bis zur Datenbank?

Danke und frohes Fest

Rubens

  1. Hello,

    diese Funktion entfernt alle Backslashes, die PHP ggf. hinzugefügt hat.

    #--------------------------------------------------------------------

    Rekursive Entfernung der Maskierungs-Backslashes aus Arrays

    function strip($data)
    {
      if (!get_magic_quotes_gpc())
      {
        return $data;
      }

    if (is_array($data))
      {
        foreach($data as $key => $val)
        {
          $data[$key] = strip($val);
        }
      }
      else
      {
        $data = stripslashes($data);  ## 1) hier ändern
      }

    return $data;
    }
    #--------------------------------------------------------------------

    Auf die gleiche Weise 1) kannst Du auch die Maskierung für MySQL wieder hinzufügen.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hello,

      diese Funktion entfernt alle Backslashes, die PHP ggf. hinzugefügt hat.

      Hi Tom,

      leider bin ich nicht so fit, somit weiß ich gar nicht richtig, was Du mir mit Deiner Antwort sagen möchtest, obwohl ich den Eindruck habe, daß Du mir einen wirklich guten tip gegeben hast :-(

      Kannst Du mir bitte nochmal genauer erklären, was Du mir sagen willst?

      Bedankt im Voraus, Rubens

  2. Hello,

    nun mache ich also bei allen datenbankrelevanten Eingaben diese beiden Komandos.

    $_POST['Kategorie'] = stripslashes($_POST['Kategorie']);
     $_POST['Kategorie'] = mysql_escape_string($_POST['Kategorie']);

    Geht das auch in einer Zeile?

    1. Das ist so viel übersichtlicher, als in einer Zeile
    2. Wenn man das gerne zusammenfassen möchte, bietet es sich an,
       eine eigene Funktion dafür zu schreiben, damit es schlußendlich
       wieder übersichtlich bleibt.
    3. die Backslashes werden von PHP nur aus Sicherheitsgründen sozusagen
       als kleinster gemeinsamer Nenner aller Datenbanken hinzugefügt
       Man muss sie eigentlich immer wieder entfernen, bevor man die
       Daten irgendwie ausgibt, egal ob HTML oder Textarea oder <input ...>
    4. MySQL erfordert auch die Maskierung weiterer Zeichen. Das macht
       mysql_[real_]escape_string() für uns.
    5. Man kann also, wenn man daran denkt, vor der Übergabe an die DB-API
       die datenbanktypische Maskierung durchzuführen, den Schaltger in der
       php.ini -> magic_quotes_gpc = on auf OFF stellen. dann muss
       stripslashes() nicht mehr bemüht werden, oder man kann danach fragen,
       wie der Schalter steht, und die Paramterarrays dann "großtechnisch"
       wieder bereinigen. Dazu eigent sich die eigene Funktion strip() in
       diesem Thread weiter unten.

    Wie man nun Funktionen für seine Zwecke anpasst, insbesondere wenn sie noch so kurz sind wie diese, das müsstest Du mal selber ergründen.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. Das ist so viel übersichtlicher, als in einer Zeile
      2. Wenn man das gerne zusammenfassen möchte, bietet es sich an,
           eine eigene Funktion dafür zu schreiben, damit es schlußendlich
           wieder übersichtlich bleibt.
      3. die Backslashes werden von PHP nur aus Sicherheitsgründen sozusagen
           als kleinster gemeinsamer Nenner aller Datenbanken hinzugefügt
           Man muss sie eigentlich immer wieder entfernen, bevor man die
           Daten irgendwie ausgibt, egal ob HTML oder Textarea oder <input ...>
      4. MySQL erfordert auch die Maskierung weiterer Zeichen. Das macht
           mysql_[real_]escape_string() für uns.
      5. Man kann also, wenn man daran denkt, vor der Übergabe an die DB-API
           die datenbanktypische Maskierung durchzuführen, den Schaltger in der
           php.ini -> magic_quotes_gpc = on auf OFF stellen. dann muss
           stripslashes() nicht mehr bemüht werden, oder man kann danach fragen,
           wie der Schalter steht, und die Paramterarrays dann "großtechnisch"
           wieder bereinigen. Dazu eigent sich die eigene Funktion strip() in
           diesem Thread weiter unten.

      Wie man nun Funktionen für seine Zwecke anpasst, insbesondere wenn sie noch so kurz sind wie diese, das müsstest Du mal selber ergründen.

      Hi Tom,

      ja, so langsam ko0mme ich dahinter, wozu ich das mache, was ich mache :-)

      Vielen Dank für Deine ausführliche Antwort und Deine Mühe.

      Frohes Fest noch weiterhin

      Rubens