HTML5 Formular Daten “auf Server speichern”?
Hallo,
ich habe eine Aufgabe, in der ich <input> Eingabedaten aus einer HTML5 Form “auf dem Server abspeichern” soll.
Wisst ihr eine Methode, wie das am einfachsten geht für einen Anfänger?
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);
An der Stelle sei noch kurz ergänzt, dass NodeJs zwar im Grunde Javascript ist, aber an manchen Stellen ein bisschen anders ist als das Javascript, das du im Browser benutzt.
Installiere dir NodeJs auf deinem Computer (https://nodejs.org/en/) und schnuppere mal rein, es lohnt sich.
Das einfachste und unsicherste wäre die Daten in einer CSV-Datei zu speichern.
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?
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-
Oh, habe gar nicht gelesen, dass er die Daten auf dem Server speichern möchte.
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?