phpbar.de logo

Mailinglisten-Archive

[php] Formular mehrmals aufrufen, bis o.k.

[php] Formular mehrmals aufrufen, bis o.k.

Ringo Großer swek at gmx.net
Die Feb 22 14:16:04 CET 2005


hallo Frank,

Frank Kunze wrote:
> ... Trennung von PHP und HTML ?
> Ist das denn überhaupt möglich ?

stichwort: templates
hierfür gibt es viele frei verfügbare template klasse,
davon einige sehr brauchbare zu deren benutzung
ich dir dringend rate.

> Wenn ich versuche zu trennen (Nämlich z.B.
> Formular als "View" und Verarbeitung als
> "Controler" die danch in eine Datenbank schreibt);
>
> wie kann ich denn z.B. das Form.php (also das Formular)
> aus dem Work.php (wo z.B. die Pflichtfelder geprüft
> werden) wieder aufrufen ?

wenn du so programmierst, wie du erklärst, dann steckst
du beizeiten in deinem konfusen code fest ;-) nichts für
ungut, aber geh es doch mal einfacher an.

> Oder allgemein: Wie kann ich ein PHP-Projekt in Module
> zerlegen, die sich gegenseitig aufrufen (Wie gesagt bei
>  mehrfachem
> Aufruf von Funktionen aus einem Hauptprogramm wird
> immer wieder neuer HTML-Code ausgegeben und im gleichen
> Fenster).

zunächst ist programm-logik nichts weiter als menschliche
logik, meist eine abbildung von allen möglichen aktionen,
selects, bedingungen seitens des/der zulünftigen user und
die folgen dieser bedingungen (darstellung, verarbeitung).
genauso solltest du beginnen.

beispiel für die logik einer kontrollstruktur
---------------------------------------------------------
wenn submit
    (dann entscheide in welchem formularteil)

    wenn teil 1
        prüfe auf fehler
        falls fehler
            rufe teil 1 mit den falschen eingaben wieder auf
        sonst
            verarbeite die daten
            und rufe teil 2 auf

     wenn teil 2
        prüfe fehler
        falls fehler
            rufe teil 2 wieder auf
        sonst
            verarbeite die daten
            und rufe teil 3 auf

        ...

sonst ( noch kein submit )
    dann erste seite anzeigen
--------------------------------------------------------

das ganze übersetzt du dann einfach in gutes englisch (für
die comments) und die entsprechenden php befehle ;-)

die einzelnen logik teile packst du dann wahlweise in
- php dateien, welche du nur inkludierst (include, include_once,
require, require_once)
- oder in funktionen mit parametern, die du dann entsprechend
aufrufst

die kontrollstruktur kann dann z.b. auch das gesamt-layout
(das drumherum) bestimmen, also header, footer, navigation usw.
die einzelnen formularteile werden dann nur abhängig von den
eingehenden parametern eingefüllt.

> Ich habe in Form.php die Feldvariablen global gesetzt
> und ein echo-Attribut - so weit scheint es zu funktio-
> nieren;

das echo solltest du nur zu debugging zwecken einsetzen.
nochmal der hinweis auf templates.

vorsicht mit globalen variablen. die wurden in den neueren
php versionen nicht umsonst per default abgeschaltet.
schau dir die zweckmäßig einzusetzenden und vor der
verarbeitung ggf zu prüfenden superglobalen $_POST,
$_GET und $_REQUEST an.

> Was mir unklar ist: Wie kann man das was sonst der User
> über Buttons oder Links macht, nämlich eine neue URL
> aufrufen in den PHP-Code einbauen (deshalb die Frage nach

der user arbeitet auch weiterhin mit HTML und den damit
verfügbaren hyperlinks oder buttons.
php läuft auf dem server und generiert diesen html output,
der abhängig von den parametern, die der user geklickt hat,
immer wieder dynamisch anders im browser des users erscheint.

> Was mich scheinbar "konfus" macht ist genau das nebeneinander
> von Kontrollstrukturen in PHP und den impliziten

siehe logik und dazu include oder functions.

> [nebenbei: Gibt es einen Debugger für PHP ?]

php selbst kontrolliert zumindest die syntax deines codes.
alles andere macht sich von hand ganz gut oder es gibt dazu
hilfsmittel in deinem editor. das ZEND development studio
soll wohl solches anbieten. kostet aber auch etwas.

regards, Ringo


php::bar PHP Wiki   -   Listenarchive