Hello,
Wie sollte ich da der Reihe nach optimalerweise voegehen ?
Dich dafür entscheiden, ob Du grundsätzlich mit Session arbeiten willst
Dir kleine Bildchen malen, welche Formulare es geben soll (Metachartverfahren)
Die Buttons und Felder, die nur dem Admin zur Verfügung stehen, rot anmalen
Die Buttons und Felder, die ein User bei eigenen Datensätzen erhält, blau anmalen
(es könnte ja sein, dass ein authentifizierter User seinem Eintrag später noch etwas
hinzufügen darf)
Jeder Formularart einen Datenbereich in der Session zuteilen. Auf dem Client erscheint dann nur ein Abbild dieser Sessiondaten.
Alle geholten Daten (aus Tebellen /Dateien) erst in die Session eintragen und von da aus ins Formular übertragen.
Du musst entscheiden, ob Formulare reentrant sein dürfen. Das bedeutet, dass der Client das Formular doppelt öffnen darf mit voneinander unabhängigen Daten. Dann muss Du das in der Session-Struktur berücksichtigen. Es muss dann für jede Instanz des Forms eine Instanz an Sessiondaten bereitstehen.
Für den Anfang würde ich darauf aber erstmal verzeichten. Allerdings bekommt jedes Formular ein Hiddenfield mit einer Unique-ID mit ausgeliefert und wenn es schon einmal da war (das merkt man beim Versuch die Daten für das Formular in der Session vorzubereiten) dann bekommt der user die vorhandenen Daten, die neue Unique_ID wird eingetragen in der Session und mit ausgeliefert und er erhält eine Warnung, dass die ältere ID von hh:mm:ss nicht mehr gültig ist.
Jder Post des Formulars prüft also erst die Formularnummer, die Unique-ID, die Userrechte für die gewünschte Aktion, ob die Datenfelder im Post auch mit denen in der Session übereinstimmen, dann wird festgestellt, welche Aktion durchgeführt werden soll und die Aktion wird durchgeführt (versucht durchzuführen). Wenn ein Fehler aufgetreten ist, wird das entsprechende Feld $Fehlermeldung in der Session gefüllt, ggf.noch Daten aktualisiert, die Unique-ID und der Timestamp aktualisiert, und die Ausgabefunktion für das Form aufgerufen.
Was muss die Ausgabefunktion können?
Design des Forms anziehen (Class="Edit", Class="showonly", Class="ADMIN" ...)
Letzte Statusmeldung (Fehlermeldung) anzeigen
Alle relevanten Felder und deren Bezeichner anzeigen (aus der Session holen)
Unique-ID und Formulartyp als Hidden-Fields ausgeben
Alle relevanten Buttons erzeugen und ausgeben (ob sie vorhanden sind, steht in der Session)
Was benötigt die Ausgebefunktion dafür?
Eigentlich nur den Zeiger auf den passenden Session-Datenblock
Alle Anzeigevorschriften für die unterschiedlichen Feldtypen und für die Buttons
Da den verschiedenen Usern für jedes Formular nur bestimmte Daten und bestimmte Aktionen zur Verfügung stehen, kann man sich das mittels einer eigenen INI-Datei bereitstellen.
Da schau Dir mal pars_ini_file() http://de2.php.net/manual/de/function.parse-ini-file.php an.
Da könntest Du eien Datei anlegen
Das soll für den Anfang genügen, aber ich melde mich nochmal.
Ich muss mal ein bisschen mit dem Ini-File spielen
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau