Ralf: " und ' in einem im gesamten $_POST escapen

Hi,

ich habe ein Formular mit einigen Textfeldern die ich an ein php script sende.

Aus den values der Textfelder soll eine mysql query gebaut werden.

Damit vom Benutzer eingegebene " bzw ' keine Fehler erzeugen escape ich sie so:
$foo = str_replace("'", "\\'", $_POST['foo']);

Wie kann ich alle " und ' in allen Elementen von $_POST escapen ohne das für alle Elemente einzeln zu machen?

MfG
Ralf

  1. hi,

    ich habe ein Formular mit einigen Textfeldern die ich an ein php script sende.

    Aus den values der Textfelder soll eine mysql query gebaut werden.

    Damit vom Benutzer eingegebene " bzw ' keine Fehler erzeugen escape ich sie so:
    $foo = str_replace("'", "\\'", $_POST['foo']);

    Wie kann ich alle " und ' in allen Elementen von $_POST escapen ohne das für alle Elemente einzeln zu machen?

    http://php.net/manual/de/function.mysql-real-escape-string.php

    bzw. überhaupt aus der StandardPHPLibrary die prepared statements nutzen ...;

    mfg

    tami

    1. Tach!

      bzw. überhaupt aus der StandardPHPLibrary die prepared statements nutzen ...;

      Prepared Statements gibt es auch unter in der mysqli-Extension, ansonsten heißt die DBMS-Abstraktion PDO und nicht die SPL.

      dedlfix.

  2. Hello,

    ich habe ein Formular mit einigen Textfeldern die ich an ein php script sende.

    Aus den values der Textfelder soll eine mysql query gebaut werden.

    Damit vom Benutzer eingegebene " bzw ' keine Fehler erzeugen escape ich sie so:
    $foo = str_replace("'", "\\'", $_POST['foo']);

    Wie kann ich alle " und ' in allen Elementen von $_POST escapen ohne das für alle Elemente einzeln zu machen?

    mittels der dafür vorgesehenen Kontext-Funktion. Bei MySQL und PHP wäre das dann z.B.:
    http://de2.php.net/manual/en/function.mysql-escape-string.php
    http://de2.php.net/manual/en/function.mysqli-escape-string.php
    http://de2.php.net/manual/en/function.mysql-real-escape-string.php
    http://de2.php.net/manual/en/mysqli.real-escape-string.php

    Bitte genau lesen, welche Funktion nun zutreffend ist, oder ob sogar eine Methode (OOP) benutzt werden muss.

    Außerdem dann dringend lesen:
    http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel

    Und dann die Array-Funktionen anschauen, z.B.:
    http://de2.php.net/manual/en/function.array-map.php

    Du müsstest das $_POST-Array dann rekursiv durcharbeiten, da es sowohl Strings, als auch Sub-Arrays enthalten kann.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de