Warum funktioniert das folgende PHP Script nicht?

...komplette Frage anzeigen

4 Antworten

Benutze was in der Art "SELECRT * ... Id='" .mysql_real_escape_string($_GET[...]) . "'";

Am Ende das ist ein " ' ".

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von MinecrafterPG
09.04.2016, 12:23

Danke triopasi, hat funktioniert ^^

0

Zuerst einmal: füge NIEMALS $_GET direkt in eine SQL-Abfrage. Dazu gibt es die funktion mysql_real_escape_string(). Dadurch kannst du es als Variable ausgeben und dementsprechend einfügen. 

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von MinecrafterPG
09.04.2016, 12:24

Okay, das ich das nicht machen darf, wusste ich nicht. Danke!

0

die möglichkeiten für php ausdrücke, die innerhalb " aufzulösen sind, sind etwas willkürlich beschränkt.

eine andere alternative ist durch {...} anzuzeigen, was alles zum aufzulösenden ausdruck gehört:

$_sql = "SELECT * FROM IP WHERE id={$_GET['id']} LIMIT 1";

Antwort bewerten Vielen Dank für Deine Bewertung

So würde es gehen - klingt komisch, ist aber so:

$_sql = "SELECT * FROM IP WHERE id=$_GET[id] LIMIT 1";
Aber wie schon gesagt wurde, dann kann jeder dein SQL-Statement manipulieren daher darf man das so nie machen!
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von MinecrafterPG
09.04.2016, 13:02

Ist aber in dem Fall in Ordnung :)

0

Was möchtest Du wissen?