Projekt

Allgemein

Profil

Aktionen

Bug #70

geschlossen

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

Von Bug Sink vor etwa 1 Monat hinzugefügt. Vor etwa 1 Monat aktualisiert.

Status:
Erledigt
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
20.07.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/7d0b8c59-295e-458e-8523-83f808552cf3/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

ErrorException: Warning: Undefined array key "step"


Automatisch erstellt durch n8n

KI-Analyse:

Analyse des Fehlers: Undefined array key "step"


1. Ursache identifizieren

Der Fehler tritt auf, weil im Code versucht wird, auf einen nicht existierenden Array-Key "step" zuzugreifen.
Konkrete Ursache:

  • Der Fehler stammt aus /public/index.php (Zeile 21), wo vermutlich ein Request-Parameter ($_GET, $_POST oder ein PSR-7-Request-Attribut) abgefragt wird, der den Key "step" erwartet, aber nicht vorhanden ist.
  • Typische Szenarien:
    • Ein Install-Tool-Schritt (z. B. TYPO3-Installer) wird aufgerufen, ohne den Parameter step zu übergeben.
    • Eine Extension oder ein Custom-Code greift auf einen nicht validierten Request-Parameter zu.
    • Ein Middleware oder Request-Handler erwartet den Key, aber der Client sendet ihn nicht.

Stacktrace-Hinweise:

  • Der Fehler entsteht vor der Middleware-Verarbeitung (z. B. VerifyHostHeader, NormalizedParamsAttribute), was darauf hindeutet, dass er direkt im Einstiegspunkt (index.php) oder einer frühen Request-Verarbeitung auftritt.
  • Die betroffenen Dateien (AbstractApplication.php, Application.php) sind Teil des TYPO3-Core, aber der Fehler wird durch externen Code (z. B. eine Extension oder index.php) ausgelöst.

2. Fix beschreiben (konkret)

Mögliche Lösungen:

A) Parameter-Validierung in index.php (empfohlen)

Falls der Fehler in index.php auftritt (z. B. im Kontext des Install-Tools oder einer Custom-Logik):

// Vorher (fehlerhaft):
$step = $_GET['step']; // oder $request->getQueryParams()['step']

// Nachher (sicher):
$step = $_GET['step'] ?? null; // oder $request->getQueryParams()['step'] ?? null
if ($step === null) {
    // Fallback-Logik oder Fehlerbehandlung (z. B. Redirect oder Default-Wert)
    $step = 1; // Beispiel: Default-Schritt
}
B) TYPO3-Install-Tool prüfen

Falls der Fehler im Install-Tool auftritt (z. B. bei /typo3/install.php):

  • Stelle sicher, dass der Parameter ?install[action]=step&install[step]=1 korrekt übergeben wird.
  • Prüfe die .htaccess-Konfiguration, ob Rewrite-Regeln den Parameter entfernen.
C) Extension-Code anpassen

Falls eine Extension den Fehler verursacht:

  • Suche nach GeneralUtility::_GP('step') oder $request->getQueryParams()['step'] in der Extension.
  • Füge eine Null-Coalescing-Operation (??) oder eine explizite Prüfung ein:
    $step = $request->getQueryParams()['step'] ?? null;
    if ($step === null) {
        throw new \RuntimeException('Parameter "step" fehlt!', 1623456789);
    }
    
D) Middleware oder Request-Handler anpassen

Falls der Fehler in einer Custom-Middleware auftritt:

  • Prüfe, ob der Key "step" im Request vorhanden ist, bevor darauf zugegriffen wird:
    $step = $request->getAttribute('step') ?? null;
    if ($step === null) {
        return $handler->handle($request); // Weiterleiten oder Fehler werfen
    }
    

3. Betroffene TYPO3 Extension nennen

Der Fehler stammt nicht direkt aus dem TYPO3-Core, sondern wird durch einen der folgenden Punkte ausgelöst:

  1. Custom-Code in /public/index.php
    • Typisch für Projekte mit manueller Request-Verarbeitung (z. B. Legacy-Code oder Custom-Installer).
  2. Eine Drittanbieter-Extension
    • Mögliche Kandidaten:
      • typo3/cms-install (falls der Installer falsch aufgerufen wird).
      • typo3/cms-setup (falls ein Setup-Schritt fehlt).
      • Custom-Extensions, die Request-Parameter ohne Validierung abfragen.
  3. Ein falsch konfigurierter Frontend-Request
    • Beispiel: Ein Link oder Formular sendet den Parameter step nicht mit.

Empfehlung:

  • Suche nach dem Key "step" im gesamten Projekt (inkl. Extensions):
    grep -r 'step' --include="*.php" public/ typo3conf/ext/
    

4. Confidence (0-100%)

  • 90% – Die Ursache ist klar (fehlender Array-Key), aber der genaue Kontext (Extension oder Custom-Code) muss noch verifiziert werden.
  • 10% Unsicherheit bleibt, da der Stacktrace keine Extension explizit nennt und der Fehler auch durch manuellen Code in index.php ausgelöst werden kann.

Zusammenfassung der nächsten Schritte

  1. Prüfe /public/index.php (Zeile 21) auf Zugriffe auf $_GET['step'] oder ähnliche Request-Parameter.
  2. Suche nach dem Key "step" in allen Extensions (typo3conf/ext/).
  3. Validiere Request-Parameter mit ?? null oder expliziten Checks.
  4. Falls Install-Tool betroffen: Prüfe die URL-Parameter (?install[step]=1).
  5. Falls Middleware betroffen: Debugge die Request-Attribute mit var_dump($request->getAttributes()).

Falls du den genauen Code-Ausschnitt aus index.php oder die betroffene Extension nennst, kann ich die Analyse weiter präzisieren!

Aktionen #1

Von Julian Pleger vor etwa 1 Monat aktualisiert

  • Status wurde von Neu zu Erledigt geändert
Aktionen

Auch abrufbar als: Atom PDF