echo $begrüßung;
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.
Das grobe Ziel der Auftrennung nach dem EVA-Prinzip sollte einhergehen mit der Schaffung und Nutzung von wiederverwendbaren Code-Teilen. Wenn du Teile deiner Anwendung so verallgemeinern kannst, dass sie auch in anderen Anwendungen ohne Anpassung verwendet werden können, musst du sie dort nicht erneut erfinden. Anpassen von kopierten Codeteilen fällt auch weg und ebenso hat man nur noch eine Stelle zu pflegen, falls sich Fehler herausstellen.
Wenn du dein INSERT INTO table (foo, bar) VALUES ($foo, $bar) in eine Funktion kippst, bleibt es ein anwendungsspezifischer Codeteil, der im nächsten Projekt nicht wiederverwendet werden kann. Schreibst du eine Funktion, die dir ein INSERT-Statement aus beliebigen übergebenen Parametern zusammenbaut, dann kannst du diese woanders erneut und ohne Änderungen verwenden.
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
addslashes() ist eine allgemeine Funktion. Besser ist es, die speziell auf MySQL abgestimmte Funktion mysql_real_escape_string() zu verwenden.
Formulare prüfe ich auf diese Art
if( isset( $submit ) )
PHP stellt die Formularwerte in $_GET und $_POST zur Verfügung. Auf register_globals basierende Varianten sind nicht generell übertragbar. Weder zwischen zwei PHP-Installationen noch sind sie zukunftssicher. Und bei unzureichenden Variableninitialisierungen sind sie auch noch sicherheitstechnisch unsicher.
{
if( $var== "" ) { $error[0] = "Fehler."; }
}
if(!count($error)) {
//alles gut
}
Das ist doch schon mal ein Anfang, um Verarbeitung und dabei entstehende Fehlermeldungen von der Ausgabe zu trennen. Du musst das nun auch noch bei den bisherigen die()-Verwendungen in einer adäquaten Weise lösen.
echo "$verabschiedung $name";