Dennis Horn: Formmailer: Daten auf Vollständigkeit prüfen

Hallo zusammen,

ich habe einen einfachen Formmailer programmiert. Nun möchte ich vor Abschicken der Daten, also vor Ausführen des Perlskriptes und am besten innerhalb der HTML-Datei (per JavaScript?), überprüfen, ob auch wirklich alle Felder ausgefüllt werden.

Wenn das der Fall ist, soll das Perlskript ausgeführt werden, wenn nicht, soll der Benutzer eine Fehlermeldung bekommen und auf der Seite bleiben.

Wie stelle ich das am geschicktesten an?

Grüße,
Dennis

  1. Hallo Dennis,

    mit JavaScript geht es natürlich nur dann, wenn der User JS aktiviert hat. Mehr dazu findest du hier -> http://www.selfhtml.net/javascript/beispiele/formulareingaben.htm

    Ansonsten musst du das serverseitig prüfen, aber leider habe ich dafür nicht genügend Kenntnisse in Perl (und keine Lust zu suchen).

    Viele Grüße
    Ben

    --
    Fantasie ist wichtiger als Wissen. - Albert Einstein
    1. Hallo

      mit JavaScript geht es natürlich nur dann, wenn der User JS aktiviert hat. Mehr dazu findest du hier -> http://www.selfhtml.net/javascript/beispiele/formulareingaben.htm

      Ist ein netter Service für den Benutzer, schont ggf. das Netz, ist aber zweitrangig.

      Ansonsten musst du das serverseitig prüfen, aber leider habe ich dafür nicht genügend Kenntnisse in Perl (und keine Lust zu suchen).

      Nicht ansonsten, das musst Du auf _jeden_ Fall tun, schließlich kann jeder Benutzer JavaScript abschalten. Du darfst Dich serverseitig _nie_ auf eine clientseitige Prüfung verlassen.

      Bitte etwas im Archiv und in der aktuellen Forumshauptdatei suchen ;-)

      Gruss,

      Vinzenz

      1. Hallo!

        Also, ich habe das selbe Problem, wie Dennis. Kann mal einer konkret erklären, wie das mit der serverseitigen Abfrage funktioniert. Wenn ich die Antwort im Forum suchen soll, muss ich 2 Tage Urlaub nehmen. Dann kann mir immer noch keiner garantieren, dass es die Antwort im Forum auch wirklich gibt.

        Gruß
        Marcel

        1. Hi Marcel,

          Kann mal einer konkret erklären, wie das mit der serverseitigen Abfrage funktioniert.

          Du willst die Daten doch ohnehin serverseitig auswerten? Genau das tust Du dann einfach - und das Auswerten besteht zuallererst darin, daß Du _dort_ prüfst, ob alles Notwendige vorhanden ist.

          Das Ergebnis der Auswertung ist in jedem Fall wieder ein HTML-Dokument - entweder eines, das die Durchführung der Operation bestätigt, oder eines, das deren Scheitern bekundet. Wobei letzteres sehr wohl auch an mangelnden Eingabewerten gelegen haben kann.

          Elegant ist es, wenn das Auswerteskript auch gleich das Formular erzeugt - dann ist es nämlich in der Lage, die eingegebenen Formularwerte auch gleich wieder in die entsprechenden einzutragen.

          Ein hübsches Anschauungsbeispiel hierfür ist das von Dir so verfluchte
              http://selfsuche.teamone.de/cgi-bin/such.pl

          • dort erlaubt diese Technik Dir nämlich, Deine Such-Anfrage schrittweise zu verfeinern, ohne daß Du immer wieder das Formular komplett ausfüllen mußt.

          Wenn ich die Antwort im Forum suchen soll, muss ich 2 Tage Urlaub nehmen.

          Dann solltest Du dringend an Deiner Suchmethode arbeiten. Das ist eine rentable Investition - denn suchen wirst Du in Deinem Leben noch ziemlich oft.

          Dann kann mir immer noch keiner garantieren, dass es die Antwort im Forum auch wirklich gibt.

          Natürlich nicht.

          Aber hältst Du Dein Problem für selten, wenn schon innerhalb weniger Minuten zwei Leute dasselbe wissen wollen? Wie viele hundert Leute werden das dann wohl in den vergangenen knapp vier Jahren gewesen sein?

          Viele Grüße
                Michael

          --
          T'Pol: I apologize if I acted inappropriately.
          V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
  2. Wenn das der Fall ist, soll das Perlskript ausgeführt werden, wenn nicht, soll der Benutzer eine Fehlermeldung bekommen und auf der Seite bleiben.

    Wie stelle ich das am geschicktesten an?

    Wenn es Dir wichtig ist, dass die Angaben "komplett" sind (auch wenn Idioten immer wieder "asdfasdf" in Formulare tippen), musst Du sie auf jeden Fall auf dem Server kontrollieren. Das tust Du am besten mit einem "Affenformular", das erst dann wirklich abgeschickt wird, wenn alle Werte OK sind.

    Die PHP-FAQ (siehe URL) beschreibt das Prinzip fuer PHP - mit Perl sollte das wohl ziemlich aehnlich sein.

    HTH, mfg
    Thomas