Bug #275
offen[Bugsink] ErrorException: Warning: file_get_contents(https://verl.ratsinfomanagement.net/webservice/portal/getSearch?type=1&maxOccurs=-1&terms=organigr…
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/d1a66aa2-f788-42c2-bd88-d2f7206276db/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=organigr…
Automatisch erstellt durch n8n
KI-Analyse:
1. Ursache identifizieren¶
Der Fehler ist kein TYPO3-Core-Fehler. Die Core-Stackframes zeigen nur, dass der Fehler während des TYPO3-Requests bis zur Anwendung durchgereicht wurde.
Die eigentliche Ursache ist dieser externe Aufruf:
https://verl.ratsinfomanagement.net/webservice/portal/getSearch?type=1&maxOccurs=-1&terms=organigramm
file_get_contents() kann den HTTP-Stream nicht öffnen:
Failed to open stream: HTTP request failed!
Typische konkrete Ursachen:
- Der Webservice antwortet mit 403/404/500/503 oder ist aktuell down.
- Der Webservice blockiert PHP-Stream-Aufrufe, z. B. wegen fehlendem
User-Agent. - Firewall/Proxy/TLS/Zertifikatsproblem zwischen TYPO3-Server und externem Dienst.
- Die Parameter haben sich geändert, z. B.
maxOccurs=-1wird vom Dienst nicht mehr akzeptiert. - Falls die
&im tatsächlichen Aufruf vorkommen und nicht nur durch die Fehlerseite escape wurde, ist die URL falsch gebaut: Ampersands dürfen vorfile_get_contents()nicht zu&werden.
2. Fix beschreiben, konkret¶
Zuerst den externen Endpunkt direkt prüfen:
curl -i -L \
--user-agent "TYPO3" \
"https://verl.ratsinfomanagement.net/webservice/portal/getSearch?type=1&maxOccurs=-1&terms=organigramm"
Dann je nach Ergebnis:
Fall A: Webservice liefert 403/404/5xx¶
- URL/Parameter mit dem Anbieter abstimmen.
- Falls
maxOccurs=-1nicht mehr erlaubt ist, auf einen gültigen Wert setzen oder die Extension patchen. - Falls der Dienst down ist: kein lokaler TYPO3-Core-Fix möglich.
Fall B: Webservice funktioniert mit Browser/cURL, aber nicht mit file_get_contents()
¶
Dann wahrscheinlich fehlt Kontext/User-Agent. In TYPO3 nicht mehr direkt file_get_contents() verwenden, sondern den TYPO3 HTTP Client, z. B. RequestFactory:
use TYPO3\CMS\Core\Http\RequestFactory;
use TYPO3\CMS\Core\Utility\GeneralUtility;
$requestFactory = RequestFactory::getSingleton();
$response = $requestFactory->request($url, 'GET', [
'headers' => [
'User-Agent' => 'TYPO3 ' . GeneralUtility::getApplicationContext()->getPhrase(),
],
'timeout' => 10,
'connect_timeout' => 5,
]);
if ($response->getStatusCode() >= 400) {
throw new \RuntimeException(
'Ratsinfo-Webservice fehlgeschlagen: ' . $url . ' Status: ' . $response->getStatusCode(),
1710000000
);
}
$content = (string) $response->getBody();
Fall C: URL wird mit & gebaut¶
Dann URL nicht HTML-encoden, sondern sauber bauen:
$params = [
'type' => '1',
'maxOccurs' => '-1',
'terms' => 'organigramm',
];
$url = 'https://verl.ratsinfomanagement.net/webservice/portal/getSearch?' . http_build_query($params);
Zusätzlich:
- Extension auf aktuelle Version aktualisieren.
- Falls keine Update verfügbar ist: Patch der Extension.
- Antwort des Webservices cachen, damit ein temporärer Ausfall nicht jede Seite kaputt macht.
- Keine lokale Lösung wie
display_errors = 0als Fix verwenden; das verdeckt den Fehler nur.
3. Betroffene TYPO3 Extension¶
Sehr wahrscheinlich ist die betroffene Extension:
ratiocional / Ratsinfo Management
Mögliche ältere Legacy-Key-Bezeichnung:
tx_ratsinfo
Nicht TYPO3 core. Die Core-Dateien im Stack sind nur die typische TYPO3-Aufrufkette.
4. Confidence¶
85%
- Root Cause „externer HTTP-Call schlägt fehl“: ca. 95%
- Extension-Zuordnung „Ratiocional/Ratsinfo“: ca. 75–80%, basierend auf Host und Webservice-Pfad.
Nichts anzuzeigen