Sven Rautenberg: Datenbank User löschen

Beitrag lesen

Moin!

Findet jemand meinen Fehler?

Eines der wichtigsten Prinzipien ordentlicher Programmierung ist "EVA - Eingabe, Verarbeitung, Ausgabe".

Dieses Prinzip verletzt du auf äußerst üble Weise. Bei dir beginnt alles mit der Ausgabe - des HTML-Kopfes und Tabellenanfangs. Dann kommt etwas Funktionsdefinition und Eingabeerwartung des beim ersten Seitenaufruf noch gar nicht abgeschickten Formulars. Verarbeitung und Speicherung kommt mittendrin, dann wieder etwas Ausgabe (der Benutzer als Tabelle), und am Ende erneut Verarbeitung (die Löschroutine).

Dieses Skript ist also dermaßen unübersichtlich durcheinander, dass es kaum glaubhaft ist, dass du dich da drin nach einem halben Jahr Nichtbetrachtung überhaupt noch auskennst.

Du solltest deine Skripte streng strukturieren:
Zuerst die Eingabe.
Dann die Verarbeitung.
Zuletzt die Ausgabe.

Im Falle deiner Benutzerverwaltung bedeutet das:
Ganz oben: Benutzeraktion feststellen. Will er löschen, will er hinzufügen oder ändern, oder will er (weil das der erste Seitenaufruf ist) überhaupt noch nichts besonderes?

Je nach Benutzerwunsch wird eine entsprechende Funktion aufgerufen, die mit den weiteren Formulardaten und deiner CSV-Datei operiert und die gewünschte Operation ausführt. Hierbei werden auch Variablen mit Daten gefüllt, die im

dritten Schritt dann in der Ausgabe einer vollständigen HTML-Datei verwendet werden.

Grundsätzlich zu deinem Löschansatz: In einer Textdatei zu löschen, indem man Leerzeichen drüberschreibt, ist zwar grundsätzlich möglich, aber da sträuben sich mir alle Nackenhaare. Der saubere Ansatz wäre, die Datei komplett in ein Array einzulesen, das gewählte Arrayelement zu entfernen, und das restliche Array wieder komplett als CSV-Datei auf Platte zu schreiben.

Bei Änderungen an Datensätzen mußt du das ja auch machen, weil sich grundsätzlich ja die Zahl der Zeichen eines Datensatzes verändern kann. Wird sie weniger, könntest du mit Leerzeichen auffüllen, wird sie mehr, hast du ein Problem.

- Sven Rautenberg