Antworten auf deine Fragen:
Neues Thema erstellen

Webformular HTML Daten auslesen uns speichern mit csv oder txt

AGSelbach

Noch nicht viel geschrieben

Hallo,
ich habe für unsere Website ein Formular erstellt für Rücklieferungen vom Kunden. Die vom Kunden eingegebenen Daten kommen zu uns per E-Mail.
Nun möchte ich diese parallel auch als csv oder txt-Datei zum weiterverarbeiten hier im Hause mit unseren Softwareprogramm (Access). Kann mir jemand weiterhelfen? Vielen Dank.
 

pixelmaker

jeden Tag neu hier

Mit HTML kann man Daten nicht zu CSV umwandeln.
Die Daten aus dem Formular mit PHP in CSV umwandeln und per Mail abschicken.
Das wäre mein Weg.

Ein Formular:
Code:
<form action="eingabe.php" method="post">

       <p><input type="text" name="vorname" /> Vorname</p>
       <p><input type="text" name="nachname" /> Nachname</p>
       <p><input type="text" name="strasse" />
          <input type="text" name="hausnr" /> Strasse Hausnr.</p>
       <p><input type="text" name="plz" />
          <input type="text" name="ort" /> PLZ Ort</p>
       <p><input type="submit" value="senden" />
          <input type="reset" value="löschen" /></p>

</form>
Das PHP Skript schreibt die Daten in eine CSV Datei (daten.csv)
Code:
<?php
   $dz=fopen("daten.csv","a");
        if(!$dz)
          {
           echo "Datei konnte nicht zum Schreiben geöffnet werden.";
            exit;
         }

    fputs($dz,$_POST["vorname"].";".$_POST["nachname"].";"
       .$_POST["strasse"].";".$_POST["hausnr"].";"
        .$_POST["plz"].";".$_POST["ort"].";\n");

        echo "Ihre Eingaben wurden gespeichert.";

    fclose($dz);
?>
<p>zurück zum Eingabeformular<a href="html-formular.htm">Adress-Eingabe-Formular</a>

Die eingegebenen datensätze werden in dem Beispiel mit Semikolon getrennt und am Ende wird ein Zeilenumbruch eingegeben, also je Eingabe eine Zeile.
Das Skript ist rudimentär, es sollte eine Bereinigung der Daten geschehen.
Hier der Link zu den CSV Funktionen (fputs) von PHP
https://www.php.net/fputcsv


grüße
ralfg
 

AGSelbach

Noch nicht viel geschrieben

Hallo ralfg,

vielen Dank für Deine Antwort. Das von Dir angegeben Script habe ich auch heute morgen im Web gefunden und getestet. Hab gerade erst Deine Antwort gelesen (hat sich überschnitten ;-)). Das funktioniert auch prima. Die csv-Datei liegt dann mit den Daten auf unserem Webserver. Nun ist die Frage, wie erhalte ich die csv-Datei per E-Mail an meine E-Mail-Adresse, wenn jemand das Formular neu ausgefüllt hat? Kannst Du da evtl. auch helfen?

lg
Anja
 

pixelmaker

jeden Tag neu hier

wie erhalte ich die csv-Datei per E-Mail an meine E-Mail-Adresse
Davon rate ich Dir erstmal ab. Ich habe, bei so einfachen Skripts doch einiges an Sicherheitsbedenken.
Es kann ja auch Schadcode ins Formular eingegeben werden der dann direkt per Mail irgendwo landet.

1.) Du kannst einfach die URL zur CSV Datei in den Browser eingeben und sie so per http herunter laden.
Gibst Du einfach "" in die Adresszeile des Browsers ein. (pfad anpassen), dann ist die Datei im Downloadordner und der sollte schon vom Virenscanner überwacht sein.
Das ist der einfachste Weg.

Du kannst in das Skript des Formulars noch eine Mailbenachrichtigung an Dich einbauen.
Danach machst Du einen Download der CSV Datei.
Wenn Du eine Aktion des Submit Buttons verwenden willst um die Mail zu senden muss der Submit Button einen Namen haben, den Du dann als Variable verwenden kannst.
Beispiel <input type="submit" name="submit" value="senden">

Mailskripten ohne Sicherheitsvorkehrungen stehe ich skeptisch gegenüber. Zu oft habe ich gehackte Mailskripte erlebt die dann zu Spamskripten wurden. Ich habe auch erlebt das dann die IP des Servers auf Spam-Blacklisten gelandet sind und der gesamte Server alle mails geblockt hat oder sogar der http Zugriff über den Browser eine Warnmeldung brachte.
So etwas wieder weg zu bekommen ist aufwändig.

grüße
ralfg
 

AGSelbach

Noch nicht viel geschrieben

Hallo Ralf,

danke für Deine ausführlichen Infos. Mit der Sicherheit hast Du auf jeden Fall Recht. Das mit der URL habe ich auch schon ausprobiert. Ist mir selber (etwas später) eingefallen. Unser Wunsch wäre, das wir die Daten des Kunden in einer txt oder csv-Datei erhalten (was ja mit dem kleinen Programm abgedeckt wäre). Wenn wir die Daten dann nicht mehr parallel per E-Mail erhalten, wäre es hilfreich, wenn man Info bekommen würde, wenn ein Kunde Daten geschickt hat. Das versuche ich dann über Deinen Tipp "Mailbenachrichtigung". Vielen Dank. Total super wäre ein "bereinigen" der CSV Datei nach Download, damit immer nur der aktuelle, die aktuellen Datensätze übermittelt werden. Da meine Programmierkenntnisse nur simple sind, haben wir das ganze mal an die Profis gegeben. Wahrscheinlich muss doch ein etwas aufwendigeres Programm/Script mit entsprechender Absicherung geschrieben werden. Vielen lieben Dank nochmals für Deine Hilfe und Zeit die Du dem Thema gewidmet hast :)!
 

pixelmaker

jeden Tag neu hier

Da meine Programmierkenntnisse nur simple sind, haben wir das ganze mal an die Profis gegeben.
Naja, Profis gibt man vorzugsweise konkrete Anweisungen. Sonst produzieren sie gerne mal einen Riesenapparat den man kaum händeln kann, nur um kleine Aufgaben zu erledigen.

Es gibt ja (fast) alles schon mal. Es handelt sich ja um eine eher kleine Aufgabe.
Nach den wenigen Beiträgen habe ich das so verstanden,
• das Du die Daten formatiert in eine CSV Datei schreiben willst.
• Damit hast Du eine Datenbank, die entfernt auf dem Server liegt.
• Wenn an den Daten eine Änderung gemacht wird, z.B. durch neue Einträge, willst Du eine Benachrichtigung bekommen.
• Dann willst Du die Daten inkrementell, also nur die geänderten, lokal in Access importieren.

Das schreiben der Daten in die CSV Datei klappt ja schon mal.
Das Klicken auf den Submit-Button kann eine Benachrichtigung auslösen.

Ansonsten kann man das automatisieren durch kleine Programme die Verzeichnisse überwachen und bei Änderung eine Aktion (Mailbenachrichtigung) auslösen.
Unter Linux gibt es z.B. Inotify Tools, so viel ich weiß ist das bei CentOS 7 bereits im Standardumfang, sonst muss es eben schnell installiert werden.
Etwas ähnliches unter Windows wäre TheFolderSpy, Es gibt mit Sicherheit hunderte weitere kleine Programme.
––––––––––––––––––––––––––––––––
Auf der anderen Seite ist Dein Rechner mit Access. Ich kenne Access nicht, aber jede datenbankfähige Software die ich kenne, wie Excel, OpenOffice, FileMaker können mit entfernten Datenbanken arbeiten. Mit den Zugangsdaten des Servers importieren sie die Daten sicher und verschlüsselt direkt aus der CSV Datei, die ja eine Datenbank ist. Man muss einmal den Pfad anlegen, es ist ja egal ob man mit einer Datenbank auf dem lokalen Server oder mit einem entfernten Server arbeitet.

Jedes der Programme, die ich kenne, kann die Daten inkrementell importieren, also nur die Änderungen an der Datei. Das geschieht dann automatisch nach dem Öffnen der Datenbank.
Das läuft mit FileMaker bei uns seit 30 jahren. Die Datenbank liegt auf einem Server und jeder Arbeitsplatz kann damit arbeiten.
Ob der Server im Haus oder der Webserver verwendet wird spielt da keine Rolle.
Wenn ich im Datenbankprogramm die Datenbank öffne werden die Daten automatisch aktualisiert. Das kann bei der Konfiguration der Datenbank eingestellt werden und dürfte bei Access nicht anders sein.

Ich finde das jetzt nicht sehr kompliziert, zumindest wäre kein Programmierer nötig der was neues erfindet, sondern nur jemand der sich mit Access auskennt.
Ich finde es ganz toll das Du dich wegen so einer Aufgabe mit PHP auseinandersetzt. Das will ich auch gar nicht bremsen.
Aber, wenn die Benachrichtigungsmail dann ankommt, würde ich von der anderen Seite aus dran gehen und Access das machen lassen was es kann.

grüße
ralfg
 
Zuletzt bearbeitet:

AGSelbach

Noch nicht viel geschrieben

Lieber Ralf,
vielen Dank!

Ja, Du hast das richtig verstanden, was ich suche. Ich denke auch, es kann nicht so kompliziert sein. Ein Formular auf der Website erstellen, mit JavaScript und PHP validieren usw. dass habe ich schon mit der tollen Hilfe von TutKit gelernt. Leider war in dem Tutorial "nur" das Verarbeiten der ausgelesenen Daten per E-Mail beschrieben. Das Thema "in Datenbank speichern" wurde kurz erwähnt, aber nicht ausführlich erläutert. Danke für Deine Tipps oben. Das werde ich mal probieren. Zur Not kann ich die csv-Tabelle auch händisch ändern und nur die neuen Datensätze an die entsprechende Abteilung weitergeben. lg Anja
 

pixelmaker

jeden Tag neu hier

Hallo Anja

Leider war in dem Tutorial "nur" das Verarbeiten der ausgelesenen Daten per E-Mail beschrieben. Das Thema "in Datenbank speichern" wurde kurz erwähnt,
Was ich Dir erklären wollte ist, das Textdokument was Du mit meinem Script oben erstellst ist eine Datenbank.
Die Daten sind bereits in der CSV Datei strukturiert gespeichert,
Die Datenbank kann auch im Textformat vorliegen wenn es die richtige Struktur hat.
Datenbankprogramme können nicht nur mit entfernten mariadb oder mysql oder oracle Datenbanken arbeiten, sondern auch mit CSV-Daten. Es gibt also, meiner Meinung nach, keine Notwendigkeit da noch kompliziert etwas dazwischen zu setzen.

Aus einem Text über Access:
Sehen Sie sich einmal unter der Option Create/Open in Access die Funktion Open näher an. Sie finden dort eine Liste der zuletzt geöffneten Dateien (selbst wenn einige von diesen inzwischen gelöscht wurden).
Direkt über dieser Liste finden Sie die Option More Files…. Wenn Sie diese auswählen, erscheint das übliche Dialogfeld zur Navigation im Dateisystem. Hier können Sie entweder eine lokale oder eine entfernte Datenbank auswählen. In diesem Dialogfeld stehen zahlreiche Formate zur Verfügung (z. B. dBase, Access, Excel, Paradox und csv/text).

Access funktioniert in diesem Fall als Datenbank-Frontend einer entfernten CSV Datei.
Die Struktur des CSV Dokuments steht fest, die Wiedergabe der Daten muss in Access einmal formatiert werden.
Access ist dann dauerhaft mit der CSV Datenbank (daten.csv) auf dem Server verknüpft und aktualisiert die Daten in Access automatisch.

grüße
ralfg
 

AGSelbach

Noch nicht viel geschrieben

Hallo Ralf,

sorry - da habe ich mich falsch ausgedrückt ... Mit dem Tutorial meinte ich nicht Deinen Tipp mit Erstellung der csv-Datei (mir ist klar, das dies bereits eine Datenbank ist), sondern ein Tutorial von TutKit bezüglich Erstellung eines sicheren Formulares mit HTML und PHP (und inquery). Da hätte ich mir noch einen Teil 2 gewünscht, der auf meine obigen Fragen eingegangen wäre. Also wie man eine csv-Datei erstellt, wie man ein Datum in diese csv-Datei einfügen kann und wie man evtl. sogar den Download-Link der csv mit Passwort versieht und und und .... Dann hätte ich Dich nicht so "nerven" müssen ;-). Ich habe auch etwas gebraucht, um den Unterschied bei fopen "a" und "w" zu kapieren.

Ich habe nun alles soweit eingerichtet, dass ich sowohl die abgefragten Daten des Formulares per E-Mail erhalte und parallel eine csv-Datei mit diesen Daten downloaden kann. Auch habe ich die "fopen" so eingestellt, das die Daten beim nächsten Ausfüllen und Absenden des Formulares überschrieben werden. Es gibt also jeweils nur einen Datensatz in der csv-Datei. Nun bespreche ich mit der Abteilung, die für die Access-Datenbank zuständig ist, das weitere Vorgehen. Aber wie Du oben schon geschrieben hast, die gewünschten Daten liegen ja nun vor und damit kann weiter gearbeitet werden. Da werden Deine Angaben oben sehr hilfreich sein, vielen Dank.

lg (und falls Du einen Brückentag hast: ein schönes langes Wochenende!)
Anja
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.632
Beiträge
1.538.443
Mitglieder
67.556
Neuestes Mitglied
Mattlack
Oben