Hallo,
ich möchte mich für die ausführlichen Antworten bedanken, einiges verstehe ich einiges nicht.
Was ich nicht verstehe, versuche ich zu erlernen.
Unklar ist mir:
.... Eine richtige Trennung ist es erst dann, wenn der Teil selbständig arbeiten kann und nur über genau definierte Schnittstellen seine Parameter bekommt und sein Ergebnis zurückliefert.
......
Wenn du wirklich eine Trennung möchtest, dann sollte der abgetrennte Teil mit beliebigen Daten und nicht nur mit dem $_POST-Array und festgelegten Feldnamen arbeiten können. Erstelle beispielsweise eine Funktion, die ein assoziatives Array entgegennimmt, aus dem die Abfrage zusammengebaut wird. Der aufrufende Teil muss allerdings dafür sorgen, dass das übergebene Array nur die gewünschten Key-Value-Paare enthält.
Wenn du nun festgestellt hast, dass in der Insert-Funktion und in der Select-Funktion und in der Update-Funktion jedes Mal die Datenbankverbindung erneut hergestellt werden muss, und Parameter dafür zwar global verfügbar sind, aber ständig in den Funktionen bekanntgemacht werden müssen, könntest du an den Punkt kommen, an dem du die Vorteile objektorientierter Programmierung zu schätzen lernst. Aber bis dahin kannst du ja erstmal mit den einfachen Funktionen üben.
Beachte dabei: Wann immer du gedenkst, das Schlüsselwort global oder Bezug auf eine globale Struktur (wie $_GET und Co.) nehmen zu müssen, ist an deinem Konzept was verkehrt, denn damit erreicht man keine Trennung sondern eine Abhängigkeit von äußeren Bedingungen.
Das versuche ich morgen nachzuvollziehen, ich sitze nun schon 12 stunden am Rechner.
Nur noch soviel, meine POST oder GET-werte wandel ich in der Regel vor dem Insert so um.
$value = addslashes($_POST['value']);
ich dachte das reicht gegen SQL injction
Formulare prüfe ich auf diese Art
if( isset( $submit ) )
{
if( $var== "" ) { $error[0] = "Fehler."; }
}
if(!count($error)) {
//alles gut
}
Wie gesagt, ich lerne.
Viele Grüße
A