Chris: Mit Formular eine CSV-konforme Datei für Excel erzeugen

Guten Tag,

ich hatte am 10. Oktober eine Frage zu Formularen auf Webservern gestellt. Mein Anliegen war, daß man die Dateien später mit Excel (als CSV-konforme Datei) auslesen kann.

Dazu wurden mir verschiedene Vorschläge (von Scripten schreiben, etc.) gemacht.

---

Axel Richter hat mir folgenden Vorschlag gemacht:
http://forum.de.selfhtml.org/?t=116633&m=746502

..aber je nach Art der Daten kann es auch ausreichen, wenn man eine einfache Textdatei erzeugen kann. CSV ist für den Datenaustausch der kleinste gemeinsamme Nenner. Folgende Datei "daten.csv" mit dem Inhalt:

Name;Vorname;Alter;Betrag
Mueller;Klaus;25;2567,89
Maier;Karin;28;1987,67

lässt sich mit einem deutschen Excel via Datei-Öffnen-Dateityp:Textdateien(*.prn; *.txt; *.csv) öffnen.

---

Frage 1:
Habe ich es richtig verstanden:
Ich lege ein Formular mit den Feldern Name, Vorname, Alter und Betrag an.

Wenn ein Online-User die Daten in das Formular eingibt und auf Absenden klickt, werden die Formulardaten auf meine E-Mail-Adresse gesandt.

Nach Erhalt der Formular-Daten speichere ich die Datei mit z.B. Notepad als *.csv-Datei ab und öffne diese Datei dann mit Excel ?

Frage 2:
Was muß ich beim Anlegen des Formulares mit Dreamweaver-Editor 4.0 genau beachen, damit die für die CSV-Verarbeitung benötigten Trennungen (mit Semikolon etc.) vorhanden sind ?

Frage 3:
Gibt es noch eine elegantere Möglichkeit, eine CSV-Datei durch ein Webserver-Formular zu erzeugen ? (also nicht Notepad für das Abspeichern mit *.csv verwenden, sondern die *.csv-Endung kommt bereits vom Webserver per E-Mail, etc.)

Frage 4:
Welchen Script-Befehl muß ich in den Quellcode der Formular-Webseite eingeben, damit die Formular-Daten an zwei verschiedene E-Mail-Adressen gleichzeitig gesandt werden ?

---
Für die fachmännischen Antworten im voraus vielen, vielen Dank !
Und entschuldigt bitte, daß ich nicht über die ausreichenden Programmierkenntnisse verfüge.

Mit freundlichen Grüßen

Chris

  1. Hallo,

    Frage 1:
    Habe ich es richtig verstanden:
    Ich lege ein Formular mit den Feldern Name, Vorname, Alter und Betrag an.

    Dann hast du ein Formular, welches zunächst die Eingabe deiner benötigten Daten ermöglicht.

    Wenn ein Online-User die Daten in das Formular eingibt und auf Absenden klickt, werden die Formulardaten auf meine E-Mail-Adresse gesandt.

    WENN du dafür ein Script geschrieben hast, dann ja.

    Nach Erhalt der Formular-Daten speichere ich die Datei mit z.B. Notepad als *.csv-Datei ab und öffne diese Datei dann mit Excel ?

    Wie du willst ... sobald die Daten bei dir sind, kannst du damit machen was du willst =).

    Frage 2:
    Was muß ich beim Anlegen des Formulares mit Dreamweaver-Editor 4.0 genau beachen, damit die für die CSV-Verarbeitung benötigten Trennungen (mit Semikolon etc.) vorhanden sind ?

    K.A. - hab noch nie mit Dreamweaver gearbeitet - sorry.

    Frage 3:
    Gibt es noch eine elegantere Möglichkeit, eine CSV-Datei durch ein Webserver-Formular zu erzeugen ? (also nicht Notepad für das Abspeichern mit *.csv verwenden, sondern die *.csv-Endung kommt bereits vom Webserver per E-Mail, etc.)

    Solangsam kommt mir der Verdacht, dass du noch nicht ganz hinter die Funktionsweise der Anwendung gestiegen bist, die du gern hättest.

    Frage 4:
    Welchen Script-Befehl muß ich in den Quellcode der Formular-Webseite eingeben, damit die Formular-Daten an zwei verschiedene E-Mail-Adressen gleichzeitig gesandt werden ?

    Jupp, du hast definitiv keine Ahnung wovon du sprichst.

    Also, ich hab zwar die Postings vom 10. nicht gelesen aber ich glaube, du hast dir die dort genannten Antworten nicht zu Herzen genommen.

    Du möchtest also die über ein Formular geschickten Daten als Anhang in einer E-Mail in dein Postfach haben ...
    Erstelle ein Formular (http://de.selfhtml.org/html/formulare/definieren.htm), definiere Eingabefelder oder dergleichen (http://de.selfhtml.org/html/formulare/eingabe.htm), sende die Formulardaten an ein Script (http://de.selfhtml.org/html/formulare/verarbeiten.htm) und verarbeite die dort ankommenden Daten so, dass eine E-Mail erstellt wird.
    Wenn du keine eigene Domain hast, dann könnte es Probleme beim verschicken der Mail geben. Beachte hierzu auch die vielen vielen Postings betreffs open relays.

    Grüße, Ulli

    1. Hallo,
      vielen Dank für Deine Antworten. Ich habe nur wenig Wissen über Programmierung. Deshalb ist Deine Kritik sehr berechtigt.

      Dennoch habe ich ein (spamunsicheres), aber funktionierendes Webserver-Formular schon einmal erstellt. Sogar eine Danke-Seite gab es, nachdem der User auf Absenden geklickt hat.

      Die Funktion wurde serverseitig mit einen CGI-Pearl-Script unterstützt:
      http://www.meindomainname.de/cgi-bin/mailmanager.pl

      Als Zieladresse habe ich dann folgende (hochspamgefährliche Funktion) verwendet:

      <input type="hidden" name="recipient" value="webmaster@meindomainname.de">

      ---

      1.

      Zumindest würde mich hier nur noch interessieren, wenn ich neben der E-Mail-Adresse "webmaster@meindomainname.de" auch eine andere E-Mail-Adresse einfügen würde (z.B. ulli.programmierer@gmx.de), wie müßte ich dann den value " ...." richtig ausfüllen ?

      --

      2.

      Noch eine kurze Schlußfrage, sofern Du Zeit hast:

      Dein Text:
      ... Wie du willst ... sobald die Daten bei dir sind, kannst du damit machen was du willst =).

      Das Problem:
      Wenn ich die emfangene E-Mail (Formulardaten) als csv mit dem Netscape in einen Ordner auf der Festplatte abspeichere, wird auch der gesamte Header mitabgespeichert. Beim Einlesen dieser Datei in Excel habe ich dann nicht nur die eingetragenen Daten, sondern auch den Header.

      Das andere Problem ist, daß die Daten teilweise nicht in Feldern geordnet erscheinen, sondern direkt hintereinander in einer Zeile.
      Wenn ich z.B. folgendes in einem Web-Server-Formular frage:

      Alter: (   ) Feld1
      Beruf (      ) Feld 2
      etc.

      Dann erscheint in einer Excel-Zeile z.B.  Alter:43
      In der nächsten Zeile z.B.    Beruf:Handwerker

      Das Wort Alter und die Zahl 43 sollte also durch ein Semikolon im Formular getrennt sein.

      Ich habe das Problem zwischenzeitlich nun so gelöst, indem ich dem Textfield "Alter"

      <input type="text" name="Alter;" size="30">

      ein Semikolon eingefügt. Anschließend klappt jetzt auch die Trennung in einzelne Excel-Felder.

      Allerdings ist nachwievor der Header der E-Mail in der Excel-Datei vorhanden.

      Außerdem habe ich einen Doppelpunkt vor der Zahl 43. Dies hängt wohl mit dem Editor zusammen ?
      Den Doppelpunkt in der Zeile
      <input type="text" name="Alter;" size="30">
      kann ich aber nirgends finden.

      Die Excel-Tabelle zeigt also in

      FELDA32  Alter
      FELDA33  :43

      ---
      Mit freundlichen Grüßen

      Chris

      1. Hallo,

        <input type="hidden" name="recipient" alue="webmaster@meindomainname.de">

        Warum kannst du diese Mailadresse nicht im Script verwenden?

        Zumindest würde mich hier nur noch interessieren, wenn ich neben der E-Mail-Adresse "webmaster@meindomainname.de" auch eine andere E-Mail-Adresse einfügen würde (z.B. ulli.programmierer@gmx.de), wie müßte ich dann den value " ...." richtig ausfüllen ?

        Auch diese könntest du in dem Perlscript hinterlegen.

        Dein Text:
        ... Wie du willst ... sobald die Daten bei dir sind, kannst du damit machen was du willst =).

        Das Problem: [...]

        Entweder du arbeitest mit RFC-Konformen MIME E-Mails und erstellst dir deinen Anhang selbst oder du könntest die Daten auch in eine Datenbank speichern ... mit phpMyAdmin kann man sich auch CSV-Dateien erstellen lassen.

        Grüße, Ulli

        1. Hallo,

          <input type="hidden" name="recipient" alue="webmaster@meindomainname.de">
          Warum kannst du diese Mailadresse nicht im Script verwenden?

          Verwenden kann ich diese Adresse schon, nur CK meinte (Damit wirst du zu einem open relay, jeder Spammer...).

          ---
          2te-EMail-Adresse

          Mein Provider meinte, daß das Webhosting-Eigene-CGI leider nur eine Weiterleitungsadresse unterstüzt, was ich zwischenzeitlich erfahren habe. Somit hat sich meine Frage zu einer zweiten E-Mail-Adresse, an die eine Kopie der Formular-Daten gesendet werden sollte, erübrigt.

          ---

          Mit freundlichen Grüßen
          Chris

          1. Hallo,

            Verwenden kann ich diese Adresse schon, nur CK meinte (Damit wirst du zu einem open relay, jeder Spammer...).

            Nein, ich meine warum schreibst du sie nicht im Scrit irgendwo fest rein ... dann kann niemand sie ändern oder auslesen.

            Grüße, Ulli

            1. Hallo Ulli,

              die Ziel-Email-Adresse habe ich einfach nach Vorgabe des Webspace-Providers in den HTML-Quelltext eingefügt.

              siehe hierzu:
              <form method="post" action="cgi-bin/mailmanager.pl" name="form1">
                            <input type="hidden" name="recipient" value="webmaster@meindomainname.de">
                            <input type="hidden" name="subject" value="Formular-fuer-Umfrage">
              ....etc.

              ---
              Was Du mit "...irgdenwo fest reinschreiben" genau meinst, weis ich nicht. Ich bin leider kein Programmierer.

              MfG.
              Chris

              1. Hallo,

                Was Du mit "...irgdenwo fest reinschreiben" genau meinst, weis ich nicht. Ich bin leider kein Programmierer.

                Dann wirst du wohl mit dem Leben müssen, was dir 1&1 bietet. Du könntest allerdings eine "Müll-Adresse" bei einem kostenlosen Anbieter einrichten und dort eine ständige Weiterleitung einstellen.

                Grüße, Ulli

  2. Hallo,

    ich hatte am 10. Oktober eine Frage
    Axel Richter hat mir folgenden Vorschlag gemacht:
    http://forum.de.selfhtml.org/?t=116633&m=746502

    Und was hat Dich daran gehindert, diese Folgefrage genau dort zu stellen? Im Übrigen lies bitte: http://forum.de.selfhtml.org/hilfe/index.htm, speziell http://forum.de.selfhtml.org/hilfe/bedienung.htm#verweise-einbinden.

    Frage 1:
    Habe ich es richtig verstanden:
    Ich lege ein Formular mit den Feldern Name, Vorname, Alter und Betrag an.

    Ja, das musst Du wohl.

    Wenn ein Online-User die Daten in das Formular eingibt und auf Absenden klickt, werden die Formulardaten auf meine E-Mail-Adresse gesandt.

    Nein, das sollte idealerweise so _nicht_ sein. Automatische Mailversendung ist _immer_ ein SPAM-Risiko. Idealerweise hinterlegt der Server die Formulardaten in Dateien oder einer Datenbank auf dem Server und Du erstellst Dir und Deinen Mitstreitern, aber eben _nur_ Dir und Deinen Mitstreitern, die Möglichkeit die Daten von dort abzuholen.

    Frage 2:
    Frage 3:
    Frage 4:

    Mit HTML-Kenntnissen und Dreamweaver allein _kannst_ Du das nicht schaffen. Dein Form-Mail-Script ist in Perl. Beschäftige Dich mit den serverseitigen Möglichkeiten von Perl. Sollte Dir das zu schwer sein, dann beschäftige _jemanden_ damit.


    Für die fachmännischen Antworten im voraus vielen, vielen Dank !
    Und entschuldigt bitte, daß ich nicht über die ausreichenden Programmierkenntnisse verfüge.

    Bitte nimm die Sicherheitshinweise von Christian Kruse ernst. Er weiß, wovon er da spricht. Es sind unter Anderem Leute wie Du, die es SPAM-Mail-Versendern so einfach machen.

    viele Grüße

    Axel

    1. Hallo Axel,

      ich habe es auf Self-HTML nachgelesen:
      * Posten Sie dieselbe Nachricht nicht mehrfach ins Forum.

      Vielen Dank für den Hinweis !
      Ich dachte nur, daß der erste Fragepunkt abgehandelt war. Und ich wußte nicht, ob die Antwortposter sich die Mühe machen würden, nochmals alte Threads anzuschauen. Deshalb mein Gedanke, einen neuen Thread zu eröffnen. Entschuldigung !

      ---

      Bitte nimm die Sicherheitshinweise von Christian Kruse ernst. Er weiß, wovon er da spricht.

      Antwort:
      Ich habe mir die entsprechenden Texte schon ausgedruckt und werde auch versuchen, sobald ich wieder etwas mehr Zeit habe, diese durchzuarbeiten. Ich hoffe auf Dein Verständnis.

      ---

      Mit freundlichen Grüßen

      Chris