Bug #114
offen[Bugsink] ErrorException: Warning: file_get_contents(https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=3&maxOccurs=-1&terms=Sozi…
0%
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).
Diefile_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=-1könnte z. B. zu einer Endlosschleife führen). -
Fehlende CURL-Alternative:
file_get_contents()ist für HTTP-Anfragen weniger robust alscURL(z. B. keine Timeout-Steuerung, schlechtere Fehlerbehandlung).
2. Fix beschreiben (konkret)¶
Empfohlene Lösung:
-
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 } -
Auf
cURLumstellen (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); -
Parameter validieren
-
maxOccurs=-1könnte problematisch sein (unendliche Ergebnisse?). - Prüfen, ob der Webservice diese Parameter überhaupt unterstützt.
-
-
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:
-
Extension identifizieren (Suche nach
file_get_contentsin/public/index.phpoder im Extension-Code). -
Webservice prüfen (z. B. mit Postman oder Browser:
https://rietberg.ratsinfomanagement.net/webservice/portal/getSearch?type=3&maxOccurs=10&terms=Sozialamt). - Logging aktivieren (z. B. TYPO3-Logs oder Monolog), um den genauen Fehler des Webservices zu sehen.
Nichts anzuzeigen