Daten per POST an MySQL schicken

-André-

Erfahrenes Mitglied
Hallo,
ich habe mir lokal auf meinem Testserver eine MySQL Datenbaknk angelegt, zum Testen habe ich eine Seite, in der ein Formular mit Textfeld ist. Der Text aus dem Textfeld wird wieder an die Seite gesendet und mit
PHP:
$angabe = $_POST["Angabe"];
$query = $angabe;
$result = mysql_query($query,$Test) or die(mysql_error());
an die Datenbank versandt.
wenn ich als Test beispielsweise
Code:
SELECT * FROM talelle1 WHERE stufe LIKE 'forte' ORDER BY id ASC
eintippe klappt das auch hervorragend.

Ich habe jetzt die gleiche Tabelle auf unseren Server geladen.
wenn ich jetzt den gleiche Text in das Textfeld eintippe, meldet MySQL einen Fehler.
Ich habe herausgefunden, dass die einfachen Anführungszeichen falsch dargestellt werden, aus
Code:
SELECT * FROM talelle1 WHERE stufe LIKE 'forte' ORDER BY id ASC
wir nach dem versenden
Code:
SELECT * FROM talelle1 WHERE stufe LIKE \'forte\' ORDER BY id ASC
, was MYSQL nicht erkennt.

Wie kann ich das abändern, dass die $_Post-Variablen richtig übermittelt werden?

Gruß

-André-
 
PHP:
$angabe = $_POST["Angabe"];
zu
PHP:
$angabe = str_replace("/", "", $_POST["Angabe"]);
Alternativ würde sich auch die Funktion "stripslashes" (oder wie auch immer) anbieten. Einfach mal auf php.net die Funktionsreferenzen durchstöbern, bin sicher du wirst auch noch auf bessere Alternativen stoßen, aber "str_replace" sollte es auf jeden Fall tun.

Dein Server fügt dem eingegangenen Request Slashes hinzu, weil in der php.ini "Magic Quotes" aktiviert wurde(n).

Die SQL Queries über POST zu senden halte ich für das Leichtsinnigste, was man überhaupt machen kann.

Beachte bitte das aktuelle Thread zum Thema SQL Injektionen.
 
Wie generierst du denn die Datenbankabfrage?
Die Antwort zu dieser Frage wird wohl kaum sein Problem lösen *hehe*
Sein Skript hat ja auf dem lokalen Rechner funktioniert - also sind es doch die Magic Quotes, oder nicht?
Nie kriege ich mal ein "Ja, gut gemacht, ist genau so wie du schreibst, danke l0ci, hier hast du ein Keks" zu lesen :(
 
Vielen dank für die Antwort, das mit der Funktion str_replace klappt hervorragend.
Ich habe jetzt auch die Funktion mysql_real_escape_string() hizugefügt. Ich hoffe, das macht das Sript ein wenig sicherer, oder?

Gruß

-André-
 
Zuletzt bearbeitet:
Zurück