Projekt

Allgemein

Profil

Aktionen

Bug #79

offen

[Bugsink] ErrorException: Warning: Undefined array key "hidden"

Von Bug Sink vor etwa 1 Monat hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
21.07.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/eeb9934d-4277-41f3-b35f-b7dd2baa7ef3/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

ErrorException: Warning: Undefined array key "hidden"


Automatisch erstellt durch n8n

KI-Analyse:

Analyse des Fehlers: Undefined array key "hidden"


1. Ursache identifizieren

Der Fehler tritt auf, weil im PHP-Code versucht wird, auf einen nicht existierenden Array-Key "hidden" zuzugreifen. Dies passiert typischerweise in einem der folgenden Szenarien:

  • Fehlende Datenbank-Spalte oder Felddefinition
    In TYPO3 wird das Feld "hidden" (für "versteckte Datensätze") standardmäßig in vielen Tabellen (z. B. pages, tt_content, sys_file_metadata) verwendet. Fehlt dieses Feld in der Datenbank oder in der TCA-Konfiguration ($TCA), führt der Zugriff auf $row['hidden'] zu diesem Fehler.

  • Unvollständige TCA-Konfiguration
    Wenn eine Extension ein eigenes Datenbank-Feld verwendet, aber die TCA-Konfiguration für das Feld "hidden" fehlt oder falsch ist, kann der Fehler auftreten.

  • Middleware- oder Request-Verarbeitung
    Der Stacktrace zeigt, dass der Fehler während der HTTP-Anfrageverarbeitung (Middleware) auftritt. Mögliche Ursachen:

    • Ein Middleware (z. B. NormalizedParamsAttribute) oder ein Request-Handler greift auf ein Array zu, das kein "hidden"-Feld enthält.
    • Ein Hook oder Event-Listener (z. B. in ext_localconf.php) versucht, auf ein nicht initialisiertes Array zuzugreifen.
  • Extension-spezifischer Code
    Eine benutzerdefinierte Extension könnte versuchen, auf $row['hidden'] zuzugreifen, ohne vorher zu prüfen, ob der Key existiert (z. B. in einem DataHandler-Hook, Backend-Modul oder Frontend-Plugin).


2. Fix beschreiben (konkret)

Abhängig von der Ursache gibt es mehrere Lösungsansätze:

A) Array-Key-Prüfung hinzufügen (schnellster Fix)

Falls der Fehler in eigener Extension-Code auftritt:

// Vorher (fehlerhaft):
if ($row['hidden']) { ... }

// Nachher (sicher):
if (isset($row['hidden']) && $row['hidden']) { ... }
// Oder ab PHP 7.4:
if ($row['hidden'] ?? false) { ... }
B) TCA-Konfiguration anpassen

Falls das Feld "hidden" in einer Tabelle fehlt:

  1. Datenbank-Update (falls Spalte fehlt):
    ALTER TABLE tx_myextension_domain_model_mytable ADD hidden tinyint(4) DEFAULT 0 NOT NULL;
    
  2. TCA anpassen (in Configuration/TCA/Overrides/...):
    $GLOBALS['TCA']['tx_myextension_domain_model_mytable']['columns']['hidden'] = [
        'config' => [
            'type' => 'check',
            'default' => 0,
        ],
    ];
    $GLOBALS['TCA']['tx_myextension_domain_model_mytable']['ctrl']['enablecolumns']['disabled'] = 'hidden';
    
C) Middleware/Request-Handler prüfen

Falls der Fehler in TYPO3-Core-Middleware auftritt (z. B. NormalizedParamsAttribute):

  • Debugging: Prüfen, welches Array den Key "hidden" erwartet (z. B. $request->getAttribute('normalizedParams')).
  • Patch: Falls es sich um einen Core-Bug handelt, sollte ein Issue auf forge.typo3.org gemeldet werden.
D) Extension-Update

Falls der Fehler in einer Drittanbieter-Extension auftritt:

  • Extension aktualisieren (prüfen, ob ein Fix existiert).
  • Temporärer Workaround: Den fehlerhaften Code in der Extension lokal patchen (z. B. mit isset()).

3. Betroffene TYPO3 Extension nennen

Der Fehler stammt nicht direkt aus dem TYPO3-Core, sondern aus:

  • Einer benutzerdefinierten Extension (wahrscheinlichste Ursache, da der Stacktrace keine Core-Extension zeigt).
  • Einer Drittanbieter-Extension, die:
    • Auf $row['hidden'] zugreift, ohne die Existenz zu prüfen.
    • Eine unvollständige TCA-Konfiguration hat.
    • Einen Hook oder Event-Listener registriert, der auf nicht initialisierte Daten zugreift.

Mögliche Kandidaten (basierend auf dem Stacktrace):

  • Eine Backend-Extension (z. B. für Listenansichten, Formulare).
  • Eine Frontend-Extension, die Datenbank-Datensätze verarbeitet.
  • Ein Middleware-Hook, der in ext_localconf.php registriert ist.

Empfehlung:

  1. Fehler reproduzieren und prüfen, welche Extension den Fehler auslöst (z. B. durch Deaktivieren von Extensions).
  2. Code-Suche nach $row['hidden'] in allen Extensions:
    grep -r "\[['\"]hidden['\"]\]" typo3conf/ext/
    

4. Confidence (0-100%)

Ursache Confidence
Benutzerdefinierte Extension greift auf $row['hidden'] zu, ohne Prüfung 80%
TCA-Konfiguration fehlt oder ist falsch 15%
Core-Bug in Middleware (z. B. NormalizedParamsAttribute) 5%

Begründung:

  • Der Stacktrace zeigt keine Core-Extension, sondern generische Middleware.
  • Der Fehler tritt typischerweise in Extension-Code auf, der mit Datenbank-Datensätzen arbeitet.
  • TYPO3-Core prüft solche Keys meist selbst (z. B. in DataHandler), daher ist ein Core-Bug unwahrscheinlich.

Zusammenfassung der nächsten Schritte

  1. Extension identifizieren, die den Fehler verursacht (via grep oder Deaktivieren von Extensions).
  2. Code prüfen, wo auf $row['hidden'] zugegriffen wird, und isset() hinzufügen.
  3. TCA/Datenbank prüfen, ob das Feld "hidden" korrekt definiert ist.
  4. Falls nötig, Issue melden (bei Drittanbieter-Extensions oder Core-Bugs).

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF