# Database Manager Backoffice — Adminer für PrestaShop: Installation, Konfiguration, Fehlerbehebung

> Das Modul Database Manager Back Office (interne Referenz dfdbmanager) integriert Adminer 5.4.2 direkt in das Backoffice von PrestaShop 8 und 9. Kein cPanel oder externes phpMyAdmin mehr nötig: ein Klick…

- Seite: <https://www.datafirefly.com/de/documentation/database-manager-adminer-prestashop/>
- Sprache: de
- Aktualisiert am: 2026-06-29
- Weitere Sprachen: [fr](https://www.datafirefly.com/documentation/database-manager-adminer-prestashop/index.md), [en](https://www.datafirefly.com/en/documentation/database-manager-adminer-prestashop/index.md), [es](https://www.datafirefly.com/es/documentation/database-manager-adminer-prestashop/index.md), [it](https://www.datafirefly.com/it/documentation/database-manager-adminer-prestashop/index.md), [pl](https://www.datafirefly.com/pl/documentation/database-manager-adminer-prestashop/index.md), [pt](https://www.datafirefly.com/pt/documentation/database-manager-adminer-prestashop/index.md), [nl](https://www.datafirefly.com/nl/documentation/database-manager-adminer-prestashop/index.md)
- Index: <https://www.datafirefly.com/de/documentation/llms.txt>

Das Modul **Database Manager Back Office** (interne Referenz `dfdbmanager`) integriert Adminer 5.4.2 direkt in das Backoffice von PrestaShop 8 und 9. Kein cPanel oder externes phpMyAdmin mehr nötig: ein Klick im Menü _Erweiterte Parameter > Adminer_ und Sie verwalten Ihre Datenbank, bereits authentifiziert.

**In einem Satz** — installieren Sie das ZIP, öffnen Sie das Adminer-Menü, verwalten Sie Ihre Datenbank. Das Auto-Login verwendet die Shop-Anmeldedaten, der Zugriff ist auf das SuperAdmin-Profil beschränkt.

## Voraussetzungen

- **PrestaShop**: 8.0.0 bis 9.99.99 (getestet auf 8.0, 8.1, 8.2, 9.0)
- **PHP**: 7.4 oder höher (kompatibel mit 8.0, 8.1, 8.2, 8.3)
- **Datenbank**: MySQL 5.7+ oder MariaDB 10.3+
- **Mitarbeiterkonto**: SuperAdmin-Profil (id_profile = 1), um Adminer zu öffnen
- **Hosting**: kompatibel mit Shared Hosting (o2switch, OVH, Infomaniak), VPS, dediziert

Keine ausgehende Verbindung von Ihrem Server ist erforderlich: Adminer 5.4.2 ist im Modul-ZIP gebündelt (508 KB, einzelne Datei).

## Installation

### 1. ZIP hochladen

In Ihrem PrestaShop-Backoffice:

1. Gehen Sie zu _Module > Modul-Manager_
2. Klicken Sie oben rechts auf _Modul hochladen_
3. Ziehen Sie die Datei `dfadminer-1.0.0.zip` per Drag-and-Drop oder klicken Sie zum Auswählen
4. Warten Sie auf das Ende des Uploads (wenige Sekunden — das ZIP ist weniger als 400 KB groß)
5. Das Modul wird automatisch installiert

### 2. Menü-Tab prüfen

Die Installation erstellt automatisch einen Menü-Tab unter _Erweiterte Parameter > Adminer_, mit einem Material storage Icon. Der Tab wird in fünf Sprachen erstellt (Französisch, Englisch, Spanisch, Deutsch, Italienisch) — die aktive Sprache wird je nach Ihrem Mitarbeiterprofil angezeigt.

**Wenn der Tab nicht erscheint** — leeren Sie den PrestaShop-Cache (_Erweiterte Parameter > Performance > Cache leeren_) und laden Sie das Menü neu. Auf PrestaShop 9 melden Sie sich ab und wieder am Backoffice an.

## Erster Zugriff auf Adminer

### Menü öffnen

Navigieren Sie zu _Erweiterte Parameter > Adminer_. Sie landen direkt auf der Tabellenliste Ihrer PrestaShop-Datenbank, ohne Authentifizierungsbildschirm, ohne auszufüllendes Formular.

Die Seite besteht aus:

- Einem fixen Banner oben, in Dark Navy, mit Ihrem Datenbanknamen links und einem blauen _Back to PrestaShop BO_ Button rechts
- Der Adminer-Oberfläche darunter: Tabellen-Sidebar links, Hauptinhalt rechts

### Auto-Login: so funktioniert es

Das Modul liest Ihre Datenbank-Anmeldedaten aus der PrestaShop-Konfiguration (die Konstanten `_DB_SERVER_`, `_DB_USER_`, `_DB_PASSWD_`, `_DB_NAME_`, die in `config/parameters.php` oder `config/settings.inc.php` definiert sind) und startet die Adminer-Session serverseitig mit diesen Anmeldedaten, bevor Adminer lädt. Es wird kein neues Passwort erstellt, keine MySQL-Berechtigung erweitert — Adminer verwendet genau die gleichen Rechte wie PrestaShop.

**Adminer-Sessions pro Mitarbeiter** — jeder SuperAdmin-Mitarbeiter hat seine eigene Adminer-Session (PHP-Sessions sind pro Browser-Cookie), aber alle verbinden sich mit derselben Datenbank mit denselben System-Anmeldedaten. Keine Adminer-Konten zu verwalten.

## Modul-Konfigurationsseite

Von _Module > Modul-Manager_ aus suchen Sie _Database Manager Back Office_ und klicken auf _Konfigurieren_. Die Seite bietet drei Abschnitte.

### Status

Zeigt an:

- Lokal installierte Adminer-Version (5.4.2 standardmäßig)
- Pfad der `adminer.php`-Datei im Modul
- Installierte Variante (vollständiges Adminer oder Adminer Editor)
- Dateigröße

### Adminer aktualisieren

Wenn eine neue stabile Version von Adminer auf `adminer.org` veröffentlicht wird, können Sie sie direkt von dieser Seite herunterladen. Klicken Sie auf _Update to latest Adminer_ — das Modul ruft die Datei von `adminer.org/latest-en.php` via cURL ab (oder file_get_contents als Fallback) und ersetzt die lokale Datei.

**Ausgehende Verbindung erforderlich** — der Download erfordert, dass Ihr Server `adminer.org` über HTTPS erreichen kann. Auf einigen sehr restriktiven Shared-Hosts sind ausgehende Verbindungen blockiert. In diesem Fall laden Sie die Datei manuell von `adminer.org` herunter und ersetzen sie in `modules/dfadminer/views/adminer/adminer.php` über FTP.

### Zu Adminer Editor wechseln

Adminer veröffentlicht auch eine _Editor_-Variante — die Oberfläche ist identisch, aber das Roh-SQL-Ausführungsfeld ist entfernt. Nur Tabellennavigation und Zeilenbearbeitung bleiben verfügbar. Nützlich, wenn Sie einem weniger technischen Profil Zugriff geben möchten, ohne freies SQL ausführen zu lassen.

Klicken Sie auf _Switch to Adminer Editor_, um die Datei herunterzuladen und zu ersetzen. Sie können jederzeit mit _Switch back to full Adminer_ zum vollständigen Adminer zurückkehren.

## Sicherheitsmodell

### SuperAdmin-Beschränkung

Adminer ist ein mächtiges Werkzeug: Wer Zugriff auf Ihre Datenbank hat, hat Zugriff auf alles (Bestellungen, Kunden, Zahlungen, gehashte Mitarbeiter-Passwörter). Aus diesem Grund beschränkt das Modul den Zugriff **ausschließlich auf das SuperAdmin-Profil** — also `id_profile = 1` in PrestaShop.

Andere Profile (Logistiker, Übersetzer, Verkäufer, benutzerdefinierte Profile) erhalten eine _Access Denied_-Meldung, wenn sie versuchen, Adminer zu öffnen, selbst wenn sie die URL kennen.

### Serverseitige Doppelprüfung

Die Beschränkung wird im Controller serverseitig zweimal angewendet:

- In `postProcess()` — bevor Adminer läuft
- In `initContent()` — beim Fallback-UI-Rendering

Diese Doppelprüfung stellt sicher, dass kein Code-Pfad das Gate umgeht, selbst bei unerwartetem Verhalten des PrestaShop-Routers.

### Blockierung des direkten HTTP-Zugriffs auf adminer.php

Die Datei `views/adminer/adminer.php` ist vor direktem HTTP-Zugriff über eine `.htaccess` mit der Direktive `Require all denied` blockiert. Der direkte Versuch, die URL `/modules/dfadminer/views/adminer/adminer.php` zu öffnen, gibt einen 403 Forbidden zurück. Der einzige Weg, Adminer zu erreichen, führt über den PrestaShop-Controller, der das SuperAdmin-Gate durchsetzt.

## Adminer für PrestaShop nutzen

### Häufige Tabellen, die man kennen sollte

Einige Tabellen, die häufig für das PrestaShop-Debugging nützlich sind (Standard-Präfix `ps_`, kann je nach Installation variieren):

- **ps_configuration** — alle Konfigurationsvariablen (Schlüssel/Wert)
- **ps_orders** — Bestellungen
- **ps_customer** — Kunden
- **ps_product** + **ps_product_lang** — Produkte und ihre Übersetzungen
- **ps_employee** — BO-Mitarbeiter
- **ps_log** — PrestaShop-Fehlerprotokoll
- **ps_cart** + **ps_cart_product** — Warenkörbe
- **ps_specific_price** — Promotions und Preisregeln

### Eine SQL-Abfrage ausführen

In der linken Sidebar klicken Sie auf _SQL command_. Geben Sie Ihre Abfrage ein, klicken Sie auf _Execute_. Adminer zeigt das Ergebnis darunter an, mit automatischer Paginierung für große Ergebnisse.

**Tipp** — Adminer merkt sich den Verlauf Ihrer SQL-Abfragen in der Session. Sie können den Verlauf über das _History_-Menü am Seitenende durchblättern und eine Abfrage mit einem Klick erneut ausführen.

### Eine Tabelle exportieren

Auf einer beliebigen Tabelle klicken Sie auf _Export_. Adminer bietet mehrere Formate an: SQL (mit oder ohne Daten), CSV, TSV. Bei sehr großen Tabellen erfolgt der Export im gechunkten Streaming — kein PHP-Speicherproblem.

### Eine Zeile direkt bearbeiten

Auf einer beliebigen Tabelle klicken Sie auf _Select data_, dann auf den Stift links von einer Zeile. Sie bearbeiten alle Felder in einem Formular und speichern mit einem Klick. Adminer generiert automatisch die UPDATE-Abfrage.

## Mehrere SuperAdmin-Mitarbeiter

Wenn Sie mehrere Mitarbeiter mit dem SuperAdmin-Profil haben, hat jeder seine eigene unabhängige Adminer-Session. Konkret:

- Mitarbeiter A öffnet Adminer in seinem Browser — seine adminer_sid-Session wird erstellt
- Mitarbeiter B macht dasselbe in seinem — seine eigene adminer_sid-Session wird erstellt
- Beide können Adminer parallel ohne gegenseitige Beeinflussung navigieren
- Wenn A sich vom PrestaShop-BO abmeldet, bleibt seine Adminer-Session bis zum Schließen des Browsers gültig (dann läuft sie ab)

Alle Mitarbeiter verbinden sich mit derselben Datenbank mit denselben System-Anmeldedaten — es gibt keine separaten Adminer-Konten zu verwalten.

## Modul aktualisieren

Um das Modul auf eine neuere Version zu aktualisieren:

1. Laden Sie das neue ZIP aus Ihrem DataFirefly-Kundenbereich herunter
2. Im BO, _Module > Modul-Manager_
3. Klicken Sie auf _Modul hochladen_ und laden Sie das neue ZIP hoch
4. PrestaShop erkennt, dass bereits eine Version existiert, und schlägt eine Aktualisierung vor
5. Bestätigen Sie — das Modul wird aktualisiert, ohne die Konfiguration zu verlieren

Da keine Datenbanktabellen erstellt werden, gibt es keine Schema-Migration zwischen Versionen zu verwalten.

## Deinstallation

Um das Modul sauber zu deinstallieren:

1. Gehen Sie zu _Module > Modul-Manager_
2. Finden Sie _Database Manager Back Office_
3. Klicken Sie im Dropdown-Menü auf _Deinstallieren_

Die Deinstallation:

- Entfernt den Menü-Tab _Erweiterte Parameter > Adminer_
- Entfernt die Moduldateien (einschließlich der gebündelten `adminer.php`-Datei)
- Berührt keine Tabelle — Ihre PrestaShop-Datenbank bleibt intakt
- Ändert keine PrestaShop-Konfiguration, keine Passwörter, keine Berechtigungen

Die Deinstallation ist vollständig reversibel: Installieren Sie das Modul einfach neu, um Adminer in demselben Zustand wieder zu erhalten.

## Fehlerbehebung

### Der Adminer-Authentifizierungsbildschirm erscheint statt der Tabellenliste

Symptom: Sie öffnen das Adminer-Menü und sehen Adminers _Authentifizierungs_-Formular (Felder _System_, _Server_, _Username_, _Password_, _Database_) statt der Tabellenliste.

Wahrscheinliche Ursache: Ein alter Adminer-Cookie (von einer vorherigen Installation oder einer anderen Adminer-Site) stört die vorbefüllte Session.

**Lösung**:

1. Öffnen Sie die DevTools Ihres Browsers (F12)
2. Gehen Sie zum Tab _Application_ (Chrome) oder _Speicher_ (Firefox)
3. Im Bereich _Cookies_ wählen Sie Ihre Domain aus
4. Löschen Sie die Cookies `adminer_sid`, `adminer_permanent`, `adminer_key` und `adminer_version`
5. Laden Sie die Adminer-Seite mit Strg+Shift+R neu

### 403 Forbidden Fehler beim Laden

Symptom: Die Adminer-Seite gibt HTTP-Status 403 zurück, manchmal mit darunter sichtbarem Authentifizierungsformular.

Wahrscheinliche Ursache: Adminer erkennt die vorbefüllte Session nicht und fällt in seinen `auth_error`-Code-Pfad, der explizit `HTTP/1.1 403 Forbidden` hinzufügt, wenn `$_GET[username]` gesetzt ist, aber die Authentifizierung fehlschlägt.

**Lösung**: gleiche Vorgehensweise wie oben — leeren Sie die Adminer-Cookies aus dem Browser. Wenn das Problem weiterhin besteht, überprüfen Sie, dass die PrestaShop-Anmeldedaten in `config/parameters.php` (PS9) oder `config/settings.inc.php` (PS8) korrekt sind und dass PrestaShop sich tatsächlich mit MySQL verbinden kann (funktioniert das PrestaShop-BO normal?).

### Adminer-Links leiten zum PrestaShop-Dashboard um

Symptom: Sie klicken auf einen Tabellennamen in der Adminer-Sidebar und landen auf dem PrestaShop-Dashboard statt auf der Tabellenseite.

Wahrscheinliche Ursache: Das URL-Post-Processing (das `controller=AdminDfAdminer` in die internen URLs von Adminer injiziert) hat nicht funktioniert. Meistens: ein HTML-Cache oder ein zwischengeschalteter Proxy, der eine veraltete Version der Seite ausliefert.

**Lösung**:

1. Leeren Sie den PrestaShop-Cache (_Erweiterte Parameter > Performance > Cache leeren_)
2. Leeren Sie den Browser-Cache (Strg+Shift+R)
3. Wenn ein CDN oder HTTP-Cache vorgeschaltet ist (Cloudflare, Varnish), leeren Sie dessen Cache für die URLs `/admin*/index.php`

### Dark Mode: der Banner oder Adminer passen sich nicht an

Der Modul-Banner passt sich automatisch dem System-Dark-Mode über die Media Query `@media (prefers-color-scheme: dark)` an. Adminer 5 hat ebenfalls seinen eigenen integrierten Dark-Mode, der derselben Systempräferenz folgt.

Wenn das Rendering Ihrem Systemmodus nicht folgt:

- Überprüfen Sie, dass Ihr OS tatsächlich im Dark-Mode ist (Windows: _Einstellungen > Personalisierung > Farben > Dunkler Modus_; macOS: _Systemeinstellungen > Allgemein > Erscheinungsbild: Dunkel_)
- Der Browser muss diese Präferenz übermitteln — standardmäßig tun das Chrome und Firefox, aber einige Theme-Management-Erweiterungen können sie überschreiben
- Überprüfen Sie mit DevTools _Rendering > Emulate CSS media feature prefers-color-scheme_, dass die Präferenz tatsächlich _dark_ ist

### Invalid Security Token bei einer Adminer-Aktion

Symptom: Sie führen eine SQL-Abfrage aus oder bearbeiten eine Zeile, und PrestaShop zeigt _Invalid Security Token_ an.

Wahrscheinliche Ursache: Diese Meldung erscheint normalerweise nie mit dem Modul — der Controller überschreibt `checkToken()`, um den PrestaShop-CSRF bei Adminer-internen Aktionen zu umgehen. Wenn Sie sie sehen, greifen Sie auf eine URL zu, die nicht über unseren Controller läuft.

**Lösung**: Überprüfen Sie, dass die URL in der Browser-Leiste mit `index.php?controller=AdminDfAdminer&token=...` beginnt. Wenn sie mit `index.php?select=...` ohne den controller-Parameter beginnt, wurde das URL-Post-Processing umgangen — leeren Sie die PrestaShop- und Browser-Caches und öffnen Sie Adminer erneut über das Menü.

## Technische Architektur

Für Entwickler oder neugierige Administratoren, die verstehen möchten, wie das Modul intern funktioniert.

### Auto-Login: Session-Vorbefüllung

Der Loader `views/adminer/loader.php` startet die Adminer-Session, bevor `adminer.php` lädt:

1. Schließt jede laufende PHP-Session via `session_write_close()` (PS9 kann eine via Symfony gestartet haben)
2. Startet eine neue Session mit `session_name('adminer_sid')`
3. Befüllt `$_SESSION[pwds][server][host][user]` vor mit dem echten Datenbank-Passwort, das aus `_DB_PASSWD_` gelesen wird
4. Befüllt `$_SESSION[db][server][host][user][dbname] = true` vor
5. Setzt `$_GET[username]`, `$_GET[db]`, `$_GET[server]` auf die PrestaShop-Werte
6. Lädt `adminer.php`

Wenn Adminer initialisiert, sieht es, dass die `SID`-Konstante bereits definiert ist und überspringt seinen eigenen `session_start()`. Es sieht `$_SESSION[pwds]` nicht-leer und überspringt auch die Permanent-Cookie-Wiederherstellung. Die Auth-Prüfung wird sofort bestanden, `Driver::connect()` verwendet das echte Passwort via der `credentials()`-Methode unserer Klasse, und `login()` gibt true zurück.

### PrestaShop CSRF-Bypass

Adminers interne POST-Formulare (SQL-Abfrage-Ausführung, Zeilenbearbeitung, Tabellenlöschung) tragen nicht das PrestaShop-CSRF-Token pro Controller. Ohne Eingriff lehnt PS diese Anfragen mit einem _Invalid Security Token_-Bildschirm ab.

Der Controller `AdminDfAdminerController` überschreibt die Methode `checkToken()`, um ohne Verifizierung true zurückzugeben. Es ist sicher, weil das SuperAdmin-Gate (`id_profile === 1`) upstream strikt stärker ist als ein CSRF-Token: Ein Angreifer, der bereits eine gestohlene SuperAdmin-Session hat, hat sowieso vollen Backoffice-Zugriff.

### Adminer-URL-Rewriting

Adminer baut seine internen Links wie `index.php?select=table_name&db=ps`. Ohne Rewriting tragen diese URLs nicht `controller=AdminDfAdminer`, und PrestaShop würde sie zum Dashboard routen.

Der Controller ruft `ob_start()` mit einem Callback auf, der die HTML-Ausgabe von Adminer post-processed: Injektion des BO-Rückkehr-Banners am Anfang des Body und Umschreiben aller `href`-, `action`- und `src`-Attribute, die auf `index.php?...` verweisen, um `controller=AdminDfAdminer&` direkt nach dem `?` einzufügen.

### Überleben von Adminers exit;-Aufrufen

Adminer macht 19 `exit;`-Aufrufe an verschiedenen Stellen (page_footer, file= serving für die Assets, Fehlerende). Ein einfaches `ob_get_clean()` am Ende des Controllers würde in diesen Fällen nie erreicht.

Die Lösung: den Post-Processing-Callback direkt an `ob_start()` übergeben. Der Callback wird von PHP automatisch beim finalen Flush des Buffers aufgerufen, selbst wenn `exit;` aufgerufen wurde. Alle Adminer-Ausgaben durchlaufen daher das Post-Processing, ohne Ausnahme.

## PrestaShop 9 Kompatibilität

Das Modul ist auf PrestaShop 8.0, 8.1, 8.2 und 9.0 getestet. Die PS 9 Kompatibilität wird durch die ausschließliche Verwendung von Legacy-Patterns erreicht, die von beiden Versionen unterstützt werden:

- `ModuleAdminController` statt Symfony-Controller — auf PS 8 und PS 9 unterstützt
- Smarty für das Konfigurations-Template — nativ unterstützt
- Tab-Installation über die `Tab`-Klasse — versionsstabile API
- Keine spezifischen Symfony-Klassen, kein Bundle erforderlich
- PSR-4 Autoload ohne Composer (geladen via `require_once` im Main-Modul)

Auf PS 9 funktioniert das Modul ohne Änderung, ohne Neukompilierung, ohne `composer install`.

## Lizenz und Quellcode

Das DataFirefly-Modul unterliegt einer kommerziellen Lizenz (DataFirefly Limited, Ireland). Der Quellcode wird **unverschlüsselt** im ZIP geliefert — Sie können ihn auditieren, die Hooks erweitern oder das Verhalten anpassen (z.B. andere zur Öffnung von Adminer autorisierte Profile hinzufügen).

Adminer selbst steht unter **Apache 2.0 / GPL 2.0** Doppellizenz, erstellt von Jakub Vrana. Die gebündelte `adminer.php`-Datei ist die unveränderte stabile Version 5.4.2 — Sie können sie durch jede kompatible Adminer-Version unter Beachtung der Originallizenz ersetzen.

## Support

Der Support ist 12 Monate nach dem Kauf inklusive (24h Werktage, FR/EN). Bei Fragen:

- E-Mail: support bei datafirefly.com
- Kundenbereich: [datafirefly.com/de/mein-konto](https://www.datafirefly.com/de/mein-konto/)

Geben Sie bei Bugs oder Weiterentwicklungsanfragen bitte Ihre PrestaShop-Version, PHP-Version, Ihren Hoster und die installierte Modulversion an.
