HTML5 Formular Daten “auf Server speichern”?

5 Antworten

Zuerst brauchst du ein HTML-Dokument mit Formular.

Beispiel:

<!doctype html>
<title>Example</title>
<meta charset="utf-8">
<form action="TARGET URL ...." method="post">
  <label for="name">Your name:</label>
  <input id="name" name="name">
  <input type="submit">
</form>

Das action-Attribut verweist auf die URL, zu der die Daten geschickt werden sollen. Mit einer serverseitigen Anwendung sollte diese Anfrage folgend bearbeitet werden.

Ein Minimalbeispiel mit PHP (das Skript könnte evaluate.php heißen):

<?php
  if (isset($_POST["name"])) {
    $data = $_POST["name"] . PHP_EOL;
    file_put_contents("data.txt", $data, FILE_APPEND | LOCK_EX);
  }

Hier habe ich schon einmal etwas mehr zu der Kommunikation / dem Datenversand von Formularen zu einem PHP-Skript geschrieben.

In meinen Beispiel wird, sofern Daten empfangen wurden und wenn notwendig eine neue Textdatei angelegt und mit den Daten beschrieben. Die Daten werden an den bestehenden Dateiinhalt gehängt, dahinter wird noch ein Zeilenumbruch (PHP_EOL) gesetzt. Mit LOCK_EX wird die Datei während des Schreibvorgangs für andere schreibende Prozesse gesperrt.

Ein Minibeispiel mit Node.js und Express:

const os = require("os");
const fs = require("fs");
const express = require("express");
const bodyParser = require("body-parser");
const router = express.Router();

const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

router.post("/evaluate", (request, response) => {
  const data = request.body.name + os.EOL;
  
  try {
    fs.appendFileSync("data.txt", data);
  }
  catch (error) {
    console.error(error);
  }
});

app.use("/", router);

Keitara 
Beitragsersteller
 07.06.2021, 21:53

Hallo, vielen Dank für die informative Antwort. Das Problem ist, dass ich überhaupt gar kein PHP kann und mir da auch die spezielle Entwicklungsumgebung fehlt. Geht es wirklich nicht über JavaScript?

regex9  07.06.2021, 21:58
@Keitara

Mein letztes Beispiel zeigt eine JavaScript-Lösung. JavaScript läuft in dem Fall aber serverseitig in einer Node.js-Umgebung. Nicht im Browser. Der Browser kann dem Server nicht vorschreiben, welche Daten er annehmen und verarbeiten muss.

Das einfachste und unsicherste wäre die Daten in einer CSV-Datei zu speichern.


Keitara 
Beitragsersteller
 07.06.2021, 21:31

Danke für deine Antwort. Ich habe eine Rückfrage. Müsste die CSV Datei dann eine sein, die schon existiert und quasi mit jedem Form-Submit aktualisiert wird oder kann das auch eine CSV Datei sein, die mit jedem Form-Submit neu generiert wird? Oder würde das dann nicht mehr als “auf Datenbank speichern” gelten?

regex9  08.06.2021, 23:08
@Keitara

Ob du eine CSV-Datei immer wieder überschreibst, eine neue CSV-Datei anlegst oder bei einer bestehenen Datei neue Daten anhängst, kannst du frei entscheiden. Du musst es immerhin selbst mit Programmcode formulieren, der auf Serverseite ausgeführt wird. Bei dem Beispiel in meiner Antwort siehst du bspw., dass eine Textdatei nur bei Bedarf angelegt wird und sonst die Daten immer nur angehängt werden.

Oder würde das dann nicht mehr als “auf Datenbank speichern” gelten?

Eine CSV-Datei ist im Grunde nur eine Textdatei mit der Endung .csv und die einzelnen Daten in ihr werden via Delimiter getrennt (das kann zeilenweise z.B. ein Komma oder ein Semikolon sein; zwischen den Zeilen sind es natürlich Zeilenumbrüche).

Von einer Datenbank kann man nicht sprechen, denn eine Datenbank bezeichnet im Großen und Ganzen ein eigenes Datenverwaltungssystem, bestehend aus einem DBMS (verwaltendes System) und der Datenbank im Kern (Datensammlung).

Beispiel für Datenbanken wären MySQL, MariaDB, MongoDB oder PostgreSQL. Eine leichtgewichtige Option dazu wäre noch SQLite (eine Programmbibliothek mit einem relationalen Datenbanksystem). Via Suchmaschine lassen sich leicht etliche Tutorials finden, wie man mit so einer Datenbank kommunizieren kann. Sei es via Node.js (also nach wie vor: Nicht im Browser, sondern von einer Serveranwendung aus) oder irgendeiner anderen Programmiersprache (C#, Java, PHP, ...).

ist für profis und anfängerInnen dieselbe methode

datei zum schreiben und dann das rein schreiben

natürlich mit einer server seitigen programmiersprache .

lerne javascript oder php

-Falsch-

regex9  07.06.2021, 21:14

Damit speicherst du Daten im Browser. Also weit entfernt vom Server.

Leonardo06  07.06.2021, 21:22
@regex9

Oh, habe gar nicht gelesen, dass er die Daten auf dem Server speichern möchte.