Tobias: Formulareingabe überprüfen

Hallo,
ich arbeite hier grad an einem Projekt bei dem auf verschiedenen, einzelnen Seite unterschiedliche Formulare zum Einsatz kommen.

Nun sollen die Formulareingaben serverseitig (PHP) auf bestimmte Kriterien überprüft werden.

Wie geh ich da am effektivsten vor? Für jedes einzelne Formular ne extra Überprüfungsroutine zu programmieren kommt mir irgendwie zu langwierig vor. Wie macht ihr das?

Vielen Dank und Tschau

Tobias

--
Speedswimming? Finswimming? Flossenschwimmen?|http://www.tobiasklare.de |  Mein Wunschzettel
ie:{ fl:| br:> va:) ls:[ fo:| rl:( n4:° ss:| de:] ch:? mo:) zu:)
Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
  1. Hellihello Tobias,

    welche Überprüfungen willst Du denn vornehmen?

    Baust Du eine Funktion check_empty($string) die Dir false oder true zurückgibt, so kannst Du doch jedes Formularfeld, dass dafür in Frage kommt, da durchschleifen. Oder was meintest Du jetzt mit kompliziert?

    Du kannst auch alle Formulare auf eine Form_Respond.php leiten, und dort dann anhand zB. des Values vom SubmitButton entscheiden, welche Rückmeldung der User erhält. Vielleicht hab ichs aber auch nicht ganz verstanden. Etwas Details könnten hilfreiche sein.

    Dank und Gruß,

    frankx

  2. Moin!

    Nun sollen die Formulareingaben serverseitig (PHP) auf bestimmte Kriterien überprüft werden.

    Wie geh ich da am effektivsten vor? Für jedes einzelne Formular ne extra Überprüfungsroutine zu programmieren kommt mir irgendwie zu langwierig vor. Wie macht ihr das?

    Du kannst die Überprüfungen doch für diverse „Typen“ bestimmt verallgemeinern. Ich hatte (und habe immer noch) die Idee, für so etwas ein Framework zu entwerfen, welches allerdings momentan noch (immer) im Entwicklungsstadium steckt. Aber vielleicht hilft dir schon der Ansatz weiter.

    Viele Grüße,
    Robert

    1. Hellihello Robert,

      Moin!

      Nun sollen die Formulareingaben serverseitig (PHP) auf bestimmte Kriterien überprüft werden.

      Wie geh ich da am effektivsten vor? Für jedes einzelne Formular ne extra Überprüfungsroutine zu programmieren kommt mir irgendwie zu langwierig vor. Wie macht ihr das?

      Du kannst die Überprüfungen doch für diverse „Typen“ bestimmt verallgemeinern. Ich hatte (und habe immer noch) die Idee, für so etwas ein Framework zu entwerfen, welches allerdings momentan noch (immer) im Entwicklungsstadium steckt. Aber vielleicht hilft dir schon der Ansatz weiter.

      Zend bietet dafür nichts?

      Dank und Gruß,

      frankx

      1. Moin frankx!

        Du kannst die Überprüfungen doch für diverse „Typen“ bestimmt verallgemeinern. Ich hatte (und habe immer noch) die Idee, für so etwas ein Framework zu entwerfen, welches allerdings momentan noch (immer) im Entwicklungsstadium steckt. Aber vielleicht hilft dir schon der Ansatz weiter.

        Zend bietet dafür nichts?

        Das weiß ich nicht. Aber mein Framework basiert auf XML (bzw. es parst direkt XML-konform erweiterte HTML Formulare; „Frontend“) und benutzt XSL zur Code-Generierung eines spezifischen „Prüfhandlers“. Das einzige, was sprachabhängig ist, ist der Code-Generator sowie eine Bibliothek mit verallgemeinerten Prüffunktionen („Backend“). Der Vorteil dabei ist, dass man das Formular weiter benutzen kann, auch wenn man später von z.B. PHP auf C++ umsteigt, man muss nur das Prüfmodul neu generieren lassen.

        Viele Grüße,
        Robert

        1. Hellihello Robert,

          Du kannst die Überprüfungen doch für diverse „Typen“ bestimmt verallgemeinern. Ich hatte (und habe immer noch) die Idee, für so etwas ein Framework zu entwerfen, welches allerdings momentan noch (immer) im Entwicklungsstadium steckt. Aber vielleicht hilft dir schon der Ansatz weiter.

          Zend bietet dafür nichts?

          Das weiß ich nicht. Aber mein Framework basiert auf XML (bzw. es parst direkt XML-konform erweiterte HTML Formulare; „Frontend“) und benutzt XSL zur Code-Generierung eines spezifischen „Prüfhandlers“. Das einzige, was sprachabhängig ist, ist der Code-Generator sowie eine Bibliothek mit verallgemeinerten Prüffunktionen („Backend“). Der Vorteil dabei ist, dass man das Formular weiter benutzen kann, auch wenn man später von z.B. PHP auf C++ umsteigt, man muss nur das Prüfmodul neu generieren lassen.

          Was ich auf Anhieb nicht ganz verstehe, ist, wieso das Format des Formulars eine Rolle spielt. Wenn der Server die Daten erhält, dann doch in einem GET/POST Array. Nimmt er dann das XHTML-Formular als "model" umd die nötigen Metadaten für die Validierung dort herauszuziehen?

          Dank und Gruß,

          frankx

          1. Moin frankx!

            Was ich auf Anhieb nicht ganz verstehe, ist, wieso das Format des Formulars eine Rolle spielt. […] Nimmt er dann das XHTML-Formular als "model" umd die nötigen Metadaten für die Validierung dort herauszuziehen?

            Richtig (die Spezifikation ist schon etwas älter, mittlerweile sind die Ideen im meinen Kopf und mein Englisch gereift ;-) ).

            Viele Grüße,
            Robert

            1. Hellihello Robert,

              Moin frankx!

              Was ich auf Anhieb nicht ganz verstehe, ist, wieso das Format des Formulars eine Rolle spielt. […] Nimmt er dann das XHTML-Formular als "model" umd die nötigen Metadaten für die Validierung dort herauszuziehen?

              Richtig (die Spezifikation ist schon etwas älter, mittlerweile sind die Ideen im meinen Kopf und mein Englisch gereift ;-) ).

              Will heißen, dass Du mit myNameSpace:MyAttributName="irgendwas" valides XHML erzeugst? Meine theoretischen Überlegungen zum Generieren gingen von einem xml-Dokument aus, aus dem dann das Formular generiert würde. Dann liegt es ja erstmal nahe, die Metadaten direkt aus der Datenstrukturvorlage zu holen, aus der auch das Formular generiert würde.

              Aber Dein Ansatz wäre damit ja auch vereinbar, immerhin kann man ihn ja auch unabhängig von einem Formulargenerator nutzen. Die Idee, XHTML als Datenträger zu nutzen, finde ich ja recht interessant.

              Dank und Gruß,

              frankx

              1. Hellihello Petra oder wie hieß die/das? Linksetzer?

                Aber Dein Ansatz wäre damit ja auch vereinbar, immerhin kann man ihn ja auch unabhängig von einem Formulargenerator nutzen. Die Idee, XHTML als Datenträger zu nutzen, finde ich ja recht interessant.

                http://forum.de.selfhtml.org/archiv/2007/2/t146501/#m950986

                Dank und Gruß,

                frankx

              2. Moin frankx!

                Will heißen, dass Du mit myNameSpace:MyAttributName="irgendwas" valides XHML erzeugst?

                Das ist die Intention.

                Meine theoretischen Überlegungen zum Generieren gingen von einem xml-Dokument aus, aus dem dann das Formular generiert würde.

                Das wäre auch eine Idee, die allerdings die gestalterischen Aspekte auch noch irgendwie berücksichtigen muss. Außerdem müsste man dann für jedes Formular erst einmal eine XML-Datei erstellen. VCV wurde in der Hinsicht „abwärtskompatibel“ erdacht.

                Dann liegt es ja erstmal nahe, die Metadaten direkt aus der Datenstrukturvorlage zu holen, aus der auch das Formular generiert würde.

                Natürlich. Wenn ich die Daten in einer SQL-Tabelle speichere, könnte ich vorher auch gegen die Zellenbeschreibungen validieren (zuzüglich der Information, dass die Daten in den SQL-Kontext gebracht werden müssen).

                Aber Dein Ansatz wäre damit ja auch vereinbar, immerhin kann man ihn ja auch unabhängig von einem Formulargenerator nutzen. Die Idee, XHTML als Datenträger zu nutzen, finde ich ja recht interessant.

                Das glaube ich dir ;-)

                Viele Grüße,
                Robert

                1. Hellihello Robert,

                  Will heißen, dass Du mit myNameSpace:MyAttributName="irgendwas" valides XHML erzeugst?

                  Das ist die Intention.

                  Na, ist es valide?

                  Meine theoretischen Überlegungen zum Generieren gingen von einem xml-Dokument aus, aus dem dann das Formular generiert würde.

                  Das wäre auch eine Idee, die allerdings die gestalterischen Aspekte auch noch irgendwie berücksichtigen muss. Außerdem müsste man dann für jedes Formular erst einmal eine XML-Datei erstellen. VCV wurde in der Hinsicht „abwärtskompatibel“ erdacht.

                  Dann liegt es ja erstmal nahe, die Metadaten direkt aus der Datenstrukturvorlage zu holen, aus der auch das Formular generiert würde.

                  Natürlich. Wenn ich die Daten in einer SQL-Tabelle speichere, könnte ich vorher auch gegen die Zellenbeschreibungen validieren (zuzüglich der Information, dass die Daten in den SQL-Kontext gebracht werden müssen).

                  Nee, wieso SQL? Das Modell als xml

                  <anrede control_type="radio" validation="none"><options>frau, herr, firma</option>

                  Guts Nächtle,
                  Dank und Gruß,

                  frankx

                  1. Hallo frankx!

                    Will heißen, dass Du mit myNameSpace:MyAttributName="irgendwas" valides XHML erzeugst?

                    Das ist die Intention.

                    Na, ist es valide?

                    Soweit ich weiß, ist XHTML1 in einer DTD definiert, d.h. ich müsste für valides XHTML1 eine XHTML+VCV-DTD erfinden. XHTML2 sollte da allerdings flexibler sein, da es das Namensraumkonzept „richtig“ umsetzt.

                    Viele Grüße,
                    Robert

                    1. Hellihello Robert,

                      Hallo frankx!

                      Will heißen, dass Du mit myNameSpace:MyAttributName="irgendwas" valides XHML erzeugst?

                      Das ist die Intention.

                      Na, ist es valide?

                      Soweit ich weiß, ist XHTML1 in einer DTD definiert, d.h. ich müsste für valides XHTML1 eine XHTML+VCV-DTD erfinden.

                      Ergänzen, oder? Den Breich der erlaubten Attribute.

                      XHTML2 sollte da allerdings flexibler sein, da es das Namensraumkonzept „richtig“ umsetzt.

                      Wie aber geht das. Kopierst Du die XHMLT1 DTD und erweiterst Sie und stellst sie dann selbst als Quelle bereit?

                      Dank und Gruß,

                      frankx

                      1. Hallo frankx!

                        Soweit ich weiß, ist XHTML1 in einer DTD definiert, d.h. ich müsste für valides XHTML1 eine XHTML+VCV-DTD erfinden.

                        Ergänzen, oder? Den Breich der erlaubten Attribute.

                        Ergänzen schon, aber dafür müsste ich die Original-DTD nehmen, erweitern und selbst veröffentlichen. Meine DTD würde dann außerdem eine andere Doctype-Angabe in der XHTML-Datei erfordern.

                        XHTML2 sollte da allerdings flexibler sein, da es das Namensraumkonzept „richtig“ umsetzt.

                        Wie aber geht das. Kopierst Du die XHMLT1 DTD und erweiterst Sie und stellst sie dann selbst als Quelle bereit?

                        Zumindest XSD (XML Schema) bietet ein entsprechendes Element für XML, mit dem man andere Schemata referenzieren kann. Mit Relax NG, in dem wohl XHTML 2 definiert werden soll, kenne ich mich nicht aus, aber das wird auch eine entsprechende Möglichkeit bieten. Mit Hilfe von XSD gebe ich in der XML-Datei einen Namensraum und ein Schema an, in dem die Elemente dieses Namensraums definiert sind.

                        Viele Grüße,
                        Robert