hio,
Ich habe eine sehr sehr sehr lange Abfrage an eine MySQL-Datenbank, welche ich mittels
<form action="<? echo $PHP_SELF?>" method="get">
weitergebe.
Jetzt sprengt mir das natürlich immer die Adressanzeige im Browser.
Da steht dann z.B.
http://domain.tld/abfrage.php?query=select%20s.stammnummer%20KuNr,%20s.lfdnummer%20LfdNr,%20s.fallzaehler%20Fall,%20s.nachname%20Nachname,%20s.vorname%20Vorname,%20a.amt%20Amt,%20s.strasse%20Straße,%20s.plz%20PLZ,%20s.wohnort%20Wohnort,%20s.geburtsdatum%20Geburtsdatum%20from%20stammdaten%20s,%20amt%20a%20where%20s.amt_id%20=%20a.amt_id
irgendwie kann ich das Schema nicht so ganz 100% nachvollziehen, was würde den passieren wenn ich stattdesseb schreibe
http://domain.tld/abfrage.php?query=delete%20from%20tabellenname.
imho ist es absoluter quatsch einen SQL-Query zu übergeben und den von einem Skript ausführen zu lassen. Und das spielt imho keine Rolle ob nun GET oder POST. Geb mir einfach mal deine Adresse und du brauchst das query-Problem nicht mehr lösen, mangels Datenbanktabellen ;) nene. Du solltest das anders lösen z.b.
http://domain.tld/abfrage.php?show=Kunden
und dann z.b.
<?php
if (isset($_GET["Kunden"]) AND $_GET["Kunden"])) {
$SQL = "SELECT .... ";
}
das ist nun keine definitive Lösung, soll aber zeigen was um einiges sicher ist, nun können die Parameter beliebig manipuliert werden, _ohne_ das ich man gleich schlimmes befürchten muss ;)
Deine Filterfunktionen kannst du auch anhängen
http://domain.tld/abfrage.php?show=Kunden&start=0&limit=20 oder so.
Wie immer du willst, jedoch wichtig ist und bleibt, niemals Daten zu trauen die nicht von dir kommen! Niemals diese Daten direkt "ausführen" z.b. als SQL-query. Das kann dicke ins Auge gehen.
gl & hf
Thorsten