Lernwebseite Fortschritt speichern?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Wenn es sich nur um wenige einzelne Daten handelt, reicht es aus, die Daten in einer Session abzulegen. Sie werden dann aber auch nur für die Dauer der Session gespeichert.

Da deine Frage mit dem Tag PHP versehen ist, gehe ich auch davon aus, dass du mit dieser Sprache arbeitest. Alle deine Seiten sollten PHP-Skripte darstellen, zu Beginn jedes Skripts (also noch vor jeglichem anderen Code) wird die session_start-Methode aufgerufen:

<?php
  session_start();

Sie erstellt eine neue Session oder setzt eine bereits vorhandene Session fort.

In der superglobalen Variable $_SESSION kannst du danach Daten ablegen. Das Auslesen vorhandener Daten ist natürlich ebenfalls möglich.

Beispiel:

$points = isset($_SESSION['points']) ? $_SESSION['points'] : 0;
$_SESSION['points'] = $points + 1;

Für eine persistentere Speicherung hingegen würde sich eine Datei eignen, für die du am besten ein bestimmtes Datenformat festlegst (CSV, JSON, INI, XML, ...).

Beispiel:

$filepath = 'path/to/data.json';

// read
$content = file_get_contents($filepath);
$data = json_decode($content, true);

// write
$jsonData = json_encode($data);
file_put_contents($filepath, $jsonData, LOCK_EX);

Mehr Informationen zu den hier verwendeten Funktionen kannst du aus der Dokumentation beziehen.

Eine dritte Option wäre eine Datenbank. Sie hat den Vorteil, große Datenmengen zuverlässiger/besser speichern und verwalten zu können. Die Daten werden wie bei Dateien so lange gespeichert, bis man sie explizit wieder löscht.

Du könntest ein DBMS wie MariaDB/MysQL oder PostgreSQL nehmen, PHP stellt verschiedene Module für eine Kommunikation mit diesen bereit (mysqli, PDO, PgSql). Voraussetzung wäre allerdings, dass du dich zuvor mit SQL etwas vertraut machst.

Im Hinblick auf deine Anwendung solltest du den Nutzer (bspw. durch eine Registration/Anmeldung) mit einer ID kennzeichnen. Wenn die Daten assoziativ zu dieser ID in Verbindung stehen, kannst du stets eindeutig ermitteln, welche Daten gelesen und verändert werden müssen. Das gilt sowohl für den Fall, dass du eine Datenbank nutzt, als auch für die Arbeit mit einer Datei.

Eine Anmeldung seitens des Nutzers braucht es nur einmal. Seine ID kannst du dir folgend in einer Session speichern.