Projekt

Allgemein

Profil

Aktionen

Bug #114

offen

[Bugsink] ErrorException: Warning: file_get_contents(https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=3&maxOccurs=-1&terms=Sozi…

Von Bug Sink vor etwa 2 Monaten hinzugefügt.

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

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/e6f38a4b-5b67-4e1f-b811-b22f08d8f71d/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

ErrorException: Warning: file_get_contents(https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=3&maxOccurs=-1&terms=Sozi…


Automatisch erstellt durch n8n

KI-Analyse:

Analyse des Fehlers

1. Ursache identifizieren

Der Fehler tritt auf, weil file_get_contents() versucht, eine externe HTTP-Anfrage an die URL
https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=3&maxOccurs=-1&terms=Sozialamt
zu senden, aber der Remote-Server antwortet mit einem HTTP 500 Internal Server Error.

  • Direkte Ursache:
    Der Webservice (ratsinfomanagement.net) hat einen internen Fehler (z. B. Datenbankproblem, ungültige Parameter, Serverkonfiguration).
    Die file_get_contents()-Funktion kann die Antwort nicht verarbeiten, da der Server keinen gültigen Response liefert.

  • Indirekte Ursache:

    • Keine Fehlerbehandlung in der aufrufenden TYPO3-Extension: Der Code prüft nicht, ob die Anfrage erfolgreich war.
    • Ungültige Parameter (maxOccurs=-1 könnte z. B. zu einer Endlosschleife führen).
    • Fehlende CURL-Alternative: file_get_contents() ist für HTTP-Anfragen weniger robust als cURL (z. B. keine Timeout-Steuerung, schlechtere Fehlerbehandlung).

2. Fix beschreiben (konkret)

Empfohlene Lösung:

  1. Fehlerbehandlung hinzufügen
    Vor dem Aufruf prüfen, ob die URL erreichbar ist, und bei Fehlern eine sinnvolle Alternative anbieten (z. B. Cache, Fallback-Daten, Fehlermeldung).

    $url = 'https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=3&maxOccurs=-1&terms=Sozialamt';
    $context = stream_context_create([
        'http' => [
            'timeout' => 10, // Timeout in Sekunden
            'ignore_errors' => true, // Auch bei HTTP 500 weiterlesen
        ],
    ]);
    
    $response = @file_get_contents($url, false, $context);
    
    if ($response === false) {
        $error = error_get_last();
        throw new \RuntimeException('Webservice-Anfrage fehlgeschlagen: ' . $error['message']);
    }
    
    // Optional: HTTP-Status prüfen
    $httpStatus = $http_response_header[0] ?? '';
    if (strpos($httpStatus, '500') !== false) {
        // Fallback oder Logging
        return []; // Leere Daten zurückgeben oder Cache nutzen
    }
    
  2. Auf cURL umstellen (besser für HTTP-Anfragen)

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_FAILONERROR, false); // Auch bei HTTP 500 weiterlesen
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    if ($response === false || $httpCode >= 400) {
        $error = curl_error($ch);
        curl_close($ch);
        throw new \RuntimeException('cURL-Fehler: ' . $error);
    }
    curl_close($ch);
    
  3. Parameter validieren

    • maxOccurs=-1 könnte problematisch sein (unendliche Ergebnisse?).
    • Prüfen, ob der Webservice diese Parameter überhaupt unterstützt.
  4. Cache implementieren
    Falls der Webservice temporär nicht erreichbar ist, können zwischengespeicherte Daten genutzt werden.


3. Betroffene TYPO3 Extension

Der Fehler stammt nicht aus dem TYPO3-Core, sondern aus einer benutzerdefinierten Extension (oder einer Drittanbieter-Extension), die in /public/index.php (Zeile 21) den file_get_contents()-Aufruf durchführt.

  • Mögliche Extensions:
    • Eine eigene Extension für die Integration des Ratsinformationssystems.
    • Eine Drittanbieter-Extension wie ext:rism (falls vorhanden) oder eine ähnliche Webservice-Anbindung.
    • Hinweis: Der Fehlerstack zeigt nur TYPO3-Core-Klassen, aber der eigentliche Aufruf erfolgt in einer nicht genannten Extension (vermutlich im index.php-Closure).

4. Confidence

  • 90% – Die Ursache (HTTP 500 vom Remote-Server) ist klar, aber die genaue Extension muss noch identifiziert werden.
  • Unsicherheit:
    • Welche Extension den Aufruf macht (könnte auch ein Scheduler-Task oder ein Hook sein).
    • Ob der Webservice überhaupt korrekt konfiguriert ist (z. B. Authentifizierung, gültige Parameter).

Zusammenfassung

Punkt Details
Ursache Remote-Webservice antwortet mit HTTP 500, file_get_contents() wirft Fehler.
Fix Fehlerbehandlung hinzufügen, cURL nutzen, Parameter prüfen, Cache.
Extension Benutzerdefinierte Extension (nicht TYPO3-Core), Aufruf in index.php.
Confidence 90%

Nächste Schritte:

  1. Extension identifizieren (Suche nach file_get_contents in /public/index.php oder im Extension-Code).
  2. Webservice prüfen (z. B. mit Postman oder Browser: https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=3&maxOccurs=10&terms=Sozialamt).
  3. Logging aktivieren (z. B. TYPO3-Logs oder Monolog), um den genauen Fehler des Webservices zu sehen.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF