Findus: einfaches Formular für Programmieridioten?

Hallo,

ich habe eine Website (html, css) und brauche nun Formulare für Kontakt und Anmeldung (ssl-Zertifikat vorhanden)

Mein Hoster bietet einfache Formulare an, die auch funktionieren, aber sie sehen schrecklich aus und haben einige Macken.

Da ich mich im Laufe meines Lebens mit verschiedenen Programmiersprachen (vba, php, javascript) auseinandersetzen musste und leider überhaupt keinen Zugang finde konnte, brauche ich ein paar Tipps.

Meine Formulare sollten können:
I. Felder verpflichtend machen
II. Felder entweder direkt beim Ausfüllen oder beim Absenden auf Fehler prüfen (Datumsfelder, Emailfelder, Telefonnummern...)
III. dem Nutzer das Formular zum Überprüfen und Korrigieren nach dem "Absenden" nochmal vorlegen.
IV. nach dem endgültigen Senden einen Bestätigungstext senden (Ihre Daten sind gesendet, blablabla)
V. nach dem endgültigen Senden eine Druckfassung anbieten evtl in Kombination mit 4.
VI. Es gibt bestimmt noch das eine oder andere zu beachten, aber mir fällt gerade nichts ein.

Ich würde mich freuen, wenn ihr mir Tipps geben könntet zu folgenden Fragen:

1. Theoretisch würde man ja JavaSkript nehmen, aber was ist mit den Leuten, die das im Browser deaktiviert haben?
2. Welche Programmiersprache brauche ich unbedingt?
3. Sollte ich mich mit der genau auseinandersetzen oder gibt es auch Möglichkeiten das zu umgehen?
4. Gibt es irgendwo Seiten, wo ich einfache Skripts zum rumbasteln runterladen kann?
5. Sollte ich bei so wenig Ahnung doch lieber mit den schlechten Formularen meines Hosters arbeiten? ;-)
6. Ist es ok, eine meiner Domains als Testgebiet zu benutzen oder sollte ich mir für php z.B. Apache auf dem Rechner einrichten (habe ich schon mal vergeblich versucht)?
7. Was habe ich vergessen, was muss ich noch beachten?

Wenn es schon ähnliche Diskussionen oder ein anderes Forum gibt in dem ich besser aufgehoben bin, freue ich mich über Hinweise, ich habe nichts finden können.

Vielen Dank schon mal!

  1. Hello,

    Meine Formulare sollten können:
    I. Felder verpflichtend machen
    II. Felder entweder direkt beim Ausfüllen oder beim Absenden auf Fehler prüfen (Datumsfelder, Emailfelder, Telefonnummern...)
    III. dem Nutzer das Formular zum Überprüfen und Korrigieren nach dem "Absenden" nochmal vorlegen.
    IV. nach dem endgültigen Senden einen Bestätigungstext senden (Ihre Daten sind gesendet, blablabla)
    V. nach dem endgültigen Senden eine Druckfassung anbieten evtl in Kombination mit 4.
    VI. Es gibt bestimmt noch das eine oder andere zu beachten, aber mir fällt gerade nichts ein.

    Suche hier im Forum ruhig mal in der Kategorie PHP nach "Affenformular".
    Da gibt es viele ineressante Threads dazu zu lesen.

    suche "category:PHP Affenformular"

    Wenn Du "Affenformular" begriffen hast, dann beschäftige Dich am besten als nächstes mit Sessions. Spätestens dann solltest Du in der Lage sein, alle Anforderungen selber umzusetzen. Bei weiteren Fragen stehen Dir dann sicher etliche hier zur Verfügung.

    Ein harzliches Glückauf

    Tom vom Berg

    http://bergpost.annerschbarrich.de
    .

    --
    Nur selber lernen macht schlau
  2. Hallo, mein lieber Findus.

    IV. nach dem endgültigen Senden einen Bestätigungstext senden (Ihre Daten sind gesendet, blablabla)
    V. nach dem endgültigen Senden eine Druckfassung anbieten evtl in Kombination mit 4.

    Unbedingt verbinden. Dir möchte jemand etwas mitteilen, daraus solltest du keine über ein halbes Dutzend Seiten gehende Weltreise machen.

    Ich würde mich freuen, wenn ihr mir Tipps geben könntet zu folgenden Fragen:

    1. Theoretisch würde man ja JavaSkript nehmen, aber was ist mit den Leuten, die das im Browser deaktiviert haben?

    Javascript ist in solchen Fällen immer nur ein Sahnehäubchen. Es ist für den Besucher leichter zu verstehen, wenn er sofort bei der Eingabe auf Fehler hingewiesen wird, dies ist aber kein Freibrief für das Weglassen der Prüfung übermittelter Daten auf Serverseite. Siehe auch 3.

    1. Welche Programmiersprache brauche ich unbedingt?

    Eine, die dir zusagt und auf dem Server verfügbar ist.

    1. Sollte ich mich mit der genau auseinandersetzen

    Nicht unbedingt. Die Fallstricke liegen eher in der Behandlung der ankommenden Daten, dort gilt aber auch eigentlich nur eine simple Regel: Traue niemals dem, was von draußen kommt, gehe immer vom Schlimmsten aus. Der klassische Sündenfall ist das Eintragen der Empfängeradresse als hidden-Feld im Formular. Vor einigen Jahren hat auf diese Weise jemand Spammern Tür und Tor geöffnet.
    Wenn du deinen Code fertig hast, kannst du ihn hier ja zur Begutachtung vorlegen.

    oder gibt es auch Möglichkeiten das zu umgehen?

    Gänzlich nicht.

    1. Gibt es irgendwo Seiten, wo ich einfache Skripts zum rumbasteln runterladen kann?

    Irgendwo unter selfhtml.org liegt IIRC ein fertiges Mailskript.

    1. Sollte ich bei so wenig Ahnung doch lieber mit den schlechten Formularen meines Hosters arbeiten? ;-)

    Learning by doing :-)

    1. Ist es ok, eine meiner Domains als Testgebiet zu benutzen

    Das ist völlig in Ordnung. Solange du niemandem erzählst, dass unter xyz/testformular.html deine Probierstube liegt und auch keinen Verweis dorthin setzt, bekommt außer dir niemand etwas von deinen Übungen mit.

    Überaus dusselig wäre es hingegen, wenn du gleich dort, wo das Formular später hin soll, in aller Öffentlichkeit mit den Bauarbeiten beginnst.

    Liebe Grüße,
    Pettersson

  3. Hi,

    Meine Formulare sollten können:
    I. Felder verpflichtend machen

    das ist eine einfache Abfrage

    II. Felder entweder direkt beim Ausfüllen oder beim Absenden auf Fehler prüfen (Datumsfelder, Emailfelder, Telefonnummern...)

    nicht entweder oder, sondern beides - eine Vorprüfung durch Javascript und eine Endprüfung über die PHP-Auswertung.

    III. dem Nutzer das Formular zum Überprüfen und Korrigieren nach dem "Absenden" nochmal vorlegen.

    Das Stichwort "Affenformular" wurde schon genannt.

    IV. nach dem endgültigen Senden einen Bestätigungstext senden (Ihre Daten sind gesendet, blablabla)

    s.o.

    V. nach dem endgültigen Senden eine Druckfassung anbieten evtl in Kombination mit 4.

    dafür ist CSS optimal. Einfach den eingegebenen Text in der Bestätigungsseite ausgeben und den Rest der Seite über display:none ausblenden. Evtl. noch einen Print-Button über Javascript anbieten.

    VI. Es gibt bestimmt noch das eine oder andere zu beachten, aber mir fällt gerade nichts ein.

    Das wichtigste von allem ist folgendes:
    Auf der Benutzerseite gibt es nur HTML und CSS - hier kannst Du sorglos rumwerkeln und experimentieren. Die Auswertung über PHP allerdings birgt viele Risiken - schlimmstenfalls Schadenersatzforderungen, falls über das Formular Massenspam versand wird und der Mailserver auf eine Blacklist kommt.

    Wenn Dir egal ist, wie die Mail bei Dir ankommt, dann reicht bereits solch ein simpler Formmailer aus, den Du mit den Abfragen der Pflichtfelder und der Ausgabe an den Nutzer erweitern kannst.

    1. Welche Programmiersprache brauche ich unbedingt?

    PHP wäre wohl die einfachste.

    freundliche Grüße
    Ingo

    1. Hello,

      simpler Formmailer

      Minimalist!

      Habe ich doch eine ganze Weile überlegt, ob es noch einfacher ginge.

      Allerdings ist es auch nicht vollständig, wenn man sich die Diskussionen der letzten Wochen um die Codierung von Mailheadern und Mailbody in Erinnerung ruft. Da fehlt dann zumindest noch etwas Codierungsarbeit.

      Ein harzliches Glückauf

      Tom vom Berg

      http://bergpost.annerschbarrich.de
      .

      --
      Nur selber lernen macht schlau
      1. Hi,

        Minimalist!

        *g* - allerdings liefert print_r($_POST,true) immerhin die vollständigen übermittelten Formulardaten und das sogar recht übersichtlich.

        Allerdings ist es auch nicht vollständig, wenn man sich die Diskussionen der letzten Wochen um die Codierung von Mailheadern und Mailbody in Erinnerung ruft. Da fehlt dann zumindest noch etwas Codierungsarbeit.

        Einerseits: "Was noch fehlt, ist eine Rückmeldung über den erfolgten Versand und eine Prüfung, ob das Formular überhaupt ausgefüllt wurde. Wie dieses einfache Script erweitert werden kann, zeige ich hier in Kürze."
        Andererseits ist selbst dieses simple PHP-Script - im Gegensatz zu vielen anderen im Netz - absolut sicher und erfüllt seinen Zweck.

        freundliche Grüße
        Ingo

  4. Vielen Dank erst mal, da ist ja schon einiges zusammengekommen! Ich werde mich also mal damit beschäftigen und solange die komischen Dinger vom Hoster benutzen.

    @Pettersson: dass ich nicht in aller Öffentlichkeit meine Sachen ausprobiere ist natürlich klar. Andererseits ist bisher bei mir so wenig los, dass es vermutlich niemand merken würde
    Grüß die Muckla von mir ;-)

    Nochmal Danke an alle. Ich melde mich dann, wenn ich nicht weiter komme.

    1. Hello,

      Vielen Dank erst mal, da ist ja schon einiges zusammengekommen! Ich werde mich also mal damit beschäftigen und solange die komischen Dinger vom Hoster benutzen.

      @Pettersson: dass ich nicht in aller Öffentlichkeit meine Sachen ausprobiere ist natürlich klar. Andererseits ist bisher bei mir so wenig los, dass es vermutlich niemand merken würde
      Grüß die Muckla von mir ;-)

      Und wenn Du nun XAMPP installieren würdest aud Deinem Home-System?
      Welches OS benutzt Du denn und wieviel Platz hast Du noch auf deiner HDD?

      Es lohnt sich, die Übungen mit dem lokalen System zu machen. da kann man sich dann eigenen Domains einrichten, Subdomains einrichten, Weiterleitungen ausprobieren, usw. und m,an muss nicht dauernd eine Internet-Verbindung offen halten für Uploads und Requests.

      Ein harzliches Glückauf

      Tom vom Berg

      http://bergpost.annerschbarrich.de
      .

      --
      Nur selber lernen macht schlau
      1. Hallo,

        Und wenn Du nun XAMPP installieren würdest aud Deinem Home-System?
        Welches OS benutzt Du denn und wieviel Platz hast Du noch auf deiner HDD?

        Ich glaube xampp hatte ich damals auf dem Rechner, das war von irgendeiner Heft-CD Chip oder so (da war jedenfalls Apache, MySQL und PHP dabei). Hat aber nicht funktioniert. Und wenn man keine Ahnung hat, findet man auch nicht raus, warum.

        Betriebssystem MS XP SP2. Habe auch einen Linuxrechner (Suse 10.2) aber der ist so laut, dass ich da nicht gerne dran arbeite. Außerdem kann ich den mit KDE zwar anwenden aber von Linux habe ich fast so wenig Ahnung wie vom Programmieren.

        Platz noch einige GB...

        Es lohnt sich, die Übungen mit dem lokalen System zu machen. da kann man sich dann eigenen Domains einrichten, Subdomains einrichten, Weiterleitungen ausprobieren, usw. und m,an muss nicht dauernd eine Internet-Verbindung offen halten für Uploads und Requests.

        Das mit dem uploaden und so wäre kein Problem (ich arbeite mit phase5.5 und dem ftp-uploader, dsl flatrate alles zusammen wunderbar schnell. Keine Ahnung ob es es was besseres gibt, ich habe das gleich als erstes gefunden und bin sehr angetan.)

        Ich werde mich jetzt mal mit dem schönen "PHP für Dummies"-Buch beschäftigen, dass ich vor Monaten gekauft und nach drei missglückten Versuchen wieder in die Ecke gelegt habe... Konnte ich doch nicht wissen, dass ich das wirklich mal brauchen würde :-(

        1. Hello,

          Ich glaube xampp hatte ich damals auf dem Rechner, das war von irgendeiner Heft-CD Chip oder so (da war jedenfalls Apache, MySQL und PHP dabei). Hat aber nicht funktioniert. Und wenn man keine Ahnung hat, findet man auch nicht raus, warum.

          Du bekommst XAMPP im Internet unter http://www.apachefriends.org/de/xampp-windows.html

          und man braucht auf Windows nicht viel Erfahrung, um die Inatallation zum Laufen zu bringen.
          Die Dokumente landen dann in aller Regel unter C:\programmme\xampp\htdocs\ In C:\Programme\xampp\apache\conf\httpd.conf und in C:\Programme\xampp\apache\conf\extra\httpd-vhosts.conf nimmst Du dann Deine Konfiguration für den Apachen vor, wenn Du verschiedene Seiten auf dem lokalen Host ausprobieren willst.

          Information darüber bekommst Du unter:
          http://httpd.apache.org/docs/2.2/vhosts/
          http://httpd.apache.org/docs/2.2/mod/core.html#virtualhost

          Vergiss nicht, entsprechende Einträge in die lokale Datei
          C:\WINDOWS\system32\drivers\etc\hosts
          einzusetzen. Sonst nützen Dir Deine Virtuellen Hosts nichts.

          Man sollte mit dem Apachen, den Einstellungen und der lakalen Hosts-Datei auf jeden Fall mal herumgespielt haben, wenn man öfter aktive Webseiten baut, damit man sich vorstellen kann, wie der Apache das handhabt.

          Ein harzliches Glückauf

          Tom vom Berg

          http://bergpost.annerschbarrich.de
          .

          --
          Nur selber lernen macht schlau