# QR-Code-Manager v19.1

Portabler PHP/MySQL QR-Code-Manager für cPanel-Hosting.

## Funktionen

- QR-Codes mit stabiler Kurz-URL
- Ziel-URL nachträglich änderbar
- PNG/JPEG/SVG-Download
- Farben und transparenter Hintergrund
- Logo/Bildmarke im QR-Code
- frei wählbarer Slug
- Benutzerregistrierung
- Benutzerkonto und Konto löschen
- Superadmin-Ebene mit Benutzerverwaltung
- Gruppen/Ordner für QR-Codes
- Statistik mit CSV-Export
- Dark Mode
- zufälliger Tabellenpräfix pro Installation
- automatische Entfernung von `install.php`, sofern Dateirechte dies erlauben
- Weiterleitung aus dem Hauptordner zum Login

## Installation

1. Dateien auf den Webserver hochladen.
2. `install.php` im Browser öffnen.
3. Datenbankdaten erfassen und ersten Superadmin anlegen.
4. Nach erfolgreicher Installation wird `install.php` automatisch gelöscht. Falls der Server dies verhindert, bitte manuell löschen.

## Update bestehender Installation

1. Dateien überschreiben.
2. Einloggen.
3. `/admin/update.php` öffnen.
4. Danach `admin/update.php` löschen.

## Gruppen/Ordner

Unter `Gruppen` können eigene Gruppen erstellt, umbenannt und gelöscht werden. Beim Löschen einer Gruppe bleiben die QR-Codes erhalten und werden auf «Keine Gruppe» gesetzt.

## Sicherheit

- PDO Prepared Statements
- Passwort-Hashing mit `password_hash()`
- CSRF-Schutz
- Session-Regeneration beim Login
- Rollenprüfung für Superadmin-Funktionen
- validierte URLs und Slugs
- geprüfter Logo-Upload mit Grössenlimit

## Version 8.2

- CSRF-/Session-Isolation fuer mehrere Installationen auf derselben Domain verbessert.
- Registrierungsformular sendet explizit an register.php und wird nicht gecacht.
- Eingeloggte Benutzer werden von der Registrierung direkt zum Dashboard weitergeleitet.

## Version 9: Teilbare Gruppen

- Gruppen können mit bestehenden Benutzern geteilt werden.
- Rechte: «Nur anzeigen» oder «Bearbeiten».
- Geteilte Gruppen erscheinen im Dashboard und in der Statistik.
- Benutzer mit Bearbeitungsrecht können QR-Codes in geteilten Gruppen erstellen und bearbeiten.
- Gruppenbesitzer können Freigaben jederzeit entfernen.

Bei einer bestehenden Installation nach dem Upload einmal `admin/update.php` aufrufen und danach löschen.


## v15.6
- Self-Updater stabilisiert.
- FAQ-Seite im Backend ergänzt.
- FAQ-Link in der Sidebar zwischen Dark Mode und Changelog ergänzt.

## v15.5
- Self-Updater stabilisiert.
- Erfolgsmeldung im Backend-Design ergänzt.
- Automatische Weiterleitung zum Dashboard nach 5 Sekunden.

## v15.4
- Changelog-Button zeigt rechtsbündig die aktuelle Version.

## v18.4
- Sichtbares `\n` im Frontend-Header entfernt.
- Mobiles Frontend-Menü stabilisiert und optisch korrigiert.
- Sidebar-Version und Changelog aktualisiert.


## v18.6
- Self-Updater: Update-Dateien können vor der Installation wieder gelöscht werden.
- Changelog und Sidebar-Version aktualisiert.

## v19.1
- Anzeigename für Benutzer ergänzt.
- Sidebar, Konto und Benutzerverwaltung nutzen den Anzeigenamen.
- Einheitliche Login-Fehlermeldung gegen User Enumeration.
- Content-Security-Policy ohne unsafe-inline für Backend und Frontend.
- Inline-Event-Handler weitgehend in externe JavaScript-Dateien ausgelagert.
