Projekt

Allgemein

Profil

Aktionen

Bug #273

offen

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

Von Bug Sink vor etwa 1 Monat hinzugefügt.

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

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/61bf36bc-fc56-4c41-814f-23f8542690c4/event/last/

Typ: NEW issue

Projekt: www-verl-de

Bugsink Alert

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


Automatisch erstellt durch n8n

KI-Analyse:

Analyse des Fehlers


1. Ursache identifizieren

Der ErrorException entsteht durch einen fehlgeschlagenen HTTP-Request via file_get_contents() auf die externe URL https://verl.ratsinfomanagement.net/webservice/portal/getSearch?type=1&maxOccurs=-1&terms=Reisepass.

Mögliche Root Causes (in Priorität):

  1. allow_url_fopen ist in der php.ini deaktiviert – Dies ist die häufigste Ursache in TYPO3-Produktionsumgebungen. Ohne diese Einstellung kann file_get_contents() keine externen URLs öffnen.

  2. Externer Server nicht erreichbar – DNS-Auflösung fehlgeschlagen, Firewall blockiert, oder Server verl.ratsinfomanagement.net ist offline.

  3. SSL/Zertifikatsproblem – Ungültiges oder abgelaufenes Zertifikat auf dem externen Server, das den Stream-Handshake verhindert.

  4. Kein Network-Timeout konfiguriert – file_get_contents() blockiert unendlich lange, ohne Timeout-Parameter, was zu einem Abbruch führt.

Der Stack-Trace zeigt, dass der Fehler während eines Frontend-Requests auftritt. Der eigentliche file_get_contents()-Aufruf liegt nicht im TYPO3 Core, sondern in einer Extension oder einem TypoScript-User-Objekt, das während des Seiten-Renderings ausgeführt wird und externe Daten vom RatsInfoManagement-Webservice abruft.


2. Fix (konkret)

Schritt 1 – file_get_contents durch GeneralUtility::getUrl() oder Guzzle ersetzen:

// STATT:
$content = file_get_contents('https://verl.ratsinfomanagement.net/webservice/portal/getSearch?type=1&maxOccurs=-1&terms=Reisepass');

// ENTWEDER:
$content = \TYPO3\CMS\Core\Utility\GeneralUtility::getUrl('https://verl.ratsinfomanagement.net/webservice/portal/getSearch?type=1&maxOccurs=-1&terms=Reisepass');

// ODER (besser):
$httpClient = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Http\RequestFactory::class);
$response = $httpClient->request('GET', 'https://verl.ratsinfomanagement.net/webservice/portal/getSearch', [
    'timeout' => 10,
    'verify' => true,
]);
$content = (string)$response->getBody();

Schritt 2 – Fehlerbehandlung implementieren:

try {
    // HTTP-Request ausführen
} catch (\Exception $e) {
    // Fallback-Content liefern oder Fehler loggen statt Exception werfen
    $this->logger->warning('RatsInfo API unavailable', ['error' => $e->getMessage()]);
    return '<!-- Service temporarily unavailable -->';
}

Schritt 3 – PHP-Konfiguration prüfen:

  • Sicherstellen, dass allow_url_fopen = On (wenn weiterhin file_get_contents verwendet wird)
  • Alternativ allow_url_fopen = Off lassen und auf Guzzle/CURL umsteigen (empfohlen)

3. Betroffene TYPO3 Extension

Die betroffene Extension ist eine kundenspezifische (Custom) Extension, die das RatsInfoManagement-Portal der Stadt Verl an die TYPO3-Website anbindet. Basierend auf der URL und dem Kontext ist es höchstwahrscheinlich eine der folgenden:

  • tx_ratsinfo oder tx_ratinfo_portal – Eine kommunale Daten-Integration-Extension
  • Oder eine maßgeschneiderte Extension der Stadt Verl (z.B. tx_verlportal, kommunalportal_ratsinfo)

Der Aufruf erfolgt typischerweise in einem TypoScript USER/USER_INT-Objekt, einem DataProcessor einer Content-Element-Extension, oder in einem Frontend-Plugin, das während des Seitenrenderings die externe API abfragt.

Hinweis: Ohne Zugriff auf den Quellcode kann die exakte Extension-Bezeichnung nicht mit 100%iger Sicherheit bestimmt werden, aber die Architektur und die externe URL deuten eindeutig auf ein kommunales RatsInfoManagement-Integrationstool hin.


4. Confidence: 85%

Begründung:

  • ✅ Die Root Cause (fehlgeschlagener externer HTTP-Request via file_get_contents) ist mit 100%iger Sicherheit identifiziert
  • ✅ Der Fix (umstellung auf Guzzle/GeneralUtility::getUrl() mit Error-Handling) ist sehr hochgradig sicher
  • ⚠️ Die exakte Extension-Bezeichnung kann ohne direkten Quellcode-Zugriff nur geschätzt werden (~65%)
  • ✅ Die Empfehlung, auf TYPO3s eigenen HTTP-Client (RequestFactory) umzusteigen, ist eine Best-Practice-Lösung mit 95%iger Sicherheit, dass sie in TYPO3 10-12 korrekt funktioniert

Empfohlene Vorgehensweise zur weiteren Eingrenzung:

  1. Im Extension-Verzeichnis nach Dateien suchen, die ratsinfomanagement.net oder file_get_contents enthalten
  2. Den TypoScript-Setup/Constant-Config nach USER-Objekten durchsuchen, die auf die externe URL verweisen
  3. Die Datei ext_localconf.php der vermuteten Extension auf Hooks/Plugins prüfen

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF