Anne Sschenker: $_POST String für Speicherung in Datenbank vorbereiten.

Hallo,

auf meiner Internetseite gibt es für den Administrator die Möglichkeit, Daten in ein Formularfeld einzugeben, welche dann in einer MySQL Datenbank gespeichert werden und daraus auch wieder ausgelesen werden.

Jetzt gibt es aber folgendes Problem:
schreibe ich in das Textfeld ein ´ (wie z.B. Wies´n), gibt es Probleme beim eintragen, da der SQL Query, welcher gebildet wird, dieses Zeichen als Begrenzung für einen Spaltennamen hält.

Nun meine FragE:

Wie muss ich den übermittelten POST String mit PHP "bearbeiten", damit es nacher keine Probleme mit dem SQL Query gibt. Sicherlich macht MySQL auch noch bei anderen (SOnder)zeichen Probleme. Wie kann ich dies alles erschalgen und sicher gehen, damit der Query richtig wird?

Vielen Dank für Euere Hilfe

Anne

  1. Hallo Anne,

    Wie muss ich den übermittelten POST String mit PHP "bearbeiten", damit es nacher keine Probleme mit dem SQL Query gibt. Sicherlich macht MySQL auch noch bei anderen (SOnder)zeichen Probleme. Wie kann ich dies alles erschalgen und sicher gehen, damit der Query richtig wird?

    mysql_escape_string() sollte helfen ->http://www.php.net/mysql_escape_string

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
  2. Hallo!

    Wie muss ich den übermittelten POST String mit PHP "bearbeiten", damit es nacher keine Probleme mit dem SQL Query gibt. Sicherlich macht MySQL auch noch bei anderen (SOnder)zeichen Probleme. Wie kann ich dies alles erschalgen und sicher gehen, damit der Query richtig wird?

    Gucke Dir mal folgende Funktion an: http://de2.php.net/manual/de/function.mysql-escape-string.php

    Grüße
    Andreas

  3. Hi,

    Eine Möglichkeit wäre diese:

    mysql_query("INSERT INTO tabelle (text) VALUES (".mysql_escape_string('Apotheke in der Wies`n').")");

    Dieser Befehl setzt einen Backshlash() vor jedes Sonderzeichen ausser _ und % und verhindert damit auch ein Ausführen von SQL-Befehlen.