Bug #118
offen[Bugsink] ErrorException: Warning: file_get_contents(https://rietberg.ratsinfomanagement.net/amtsblatt/webservice/portal/getSearch?type=0&maxOccurs=-1&…
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/0cccad8e-0f2c-4494-8577-f8e1770c5d04/event/last/
Typ: NEW issue
Projekt: www-rietberg-de
Bugsink Alert
ErrorException: Warning: file_get_contents(https://rietberg.ratsinfomanagement.net/amtsblatt/webservice/portal/getSearch?type=0&maxOccurs=-1&…
Automatisch erstellt durch n8n
KI-Analyse:
Analyse des Fehlers¶
1. Ursache identifizieren¶
Der Fehler tritt auf, weil file_get_contents() versucht, eine externe API (https://rietberg.ratsinfomanagement.net/amtsblatt/webservice/portal/getSearch) abzufragen, die jedoch mit einem HTTP 500 Internal Server Error antwortet.
Mögliche Gründe für den 500er-Fehler:
-
Serverseitiger Fehler (z. B. PHP-Fehler, Datenbankproblem, falsche Konfiguration) auf dem Zielserver (
rietberg.ratsinfomanagement.net). -
Ungültige Anfrageparameter (z. B.
type=0,maxOccurs=-1,terms=Sozialamtkönnten vom Backend nicht korrekt verarbeitet werden). - Authentifizierung fehlt (falls die API einen API-Key oder Token erwartet).
- SSL/TLS-Probleme (z. B. Zertifikatsfehler, unsichere Verbindung).
- Timeout oder Netzwerkproblem (z. B. Firewall blockiert die Anfrage).
Hinweis:
- Der Fehler stammt nicht aus dem TYPO3-Core, sondern aus einem benutzerdefinierten Skript (
/public/index.php:21), das die API abfragt. - Die TYPO3-Middleware-Stacks (
VerifyHostHeader,NormalizedParamsAttribute) sind nur indirekt betroffen, da sie die Anfrage weiterleiten.
2. Fix beschreiben (konkret)¶
Schritt 1: Fehlerquelle eingrenzen
-
Prüfe die API manuell (z. B. mit
curloder Postman):curl -v "https://rietberg.ratsinfomanagement.net/amtsblatt/webservice/portal/getSearch?type=0&maxOccurs=-1&terms=Sozialamt"- Falls der 500er-Fehler reproduzierbar ist, liegt das Problem auf dem Zielserver.
- Falls die API funktioniert, prüfe die PHP-Konfiguration (z. B.
allow_url_fopen, SSL-Einstellungen).
Schritt 2: Robustere Fehlerbehandlung in PHP
Ersetze file_get_contents() durch GuzzleHttp (empfohlen für TYPO3) oder füge eine Fehlerbehandlung hinzu:
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
try {
$client = new Client();
$response = $client->get('https://rietberg.ratsinfomanagement.net/amtsblatt/webservice/portal/getSearch', [
'query' => [
'type' => 0,
'maxOccurs' => -1,
'terms' => 'Sozialamt'
],
'timeout' => 10,
'verify' => true // SSL-Zertifikat prüfen
]);
$data = json_decode($response->getBody(), true);
} catch (RequestException $e) {
// Fehler loggen (z. B. mit TYPO3 Logger)
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Log\LogManager::class)
->getLogger(__CLASS__)
->error('API-Anfrage fehlgeschlagen: ' . $e->getMessage());
// Fallback-Verhalten (z. B. leeres Array zurückgeben)
$data = [];
}
Schritt 3: API-Anfrage optimieren
-
Parameter validieren (z. B.
maxOccurs=-1könnte ungültig sein). -
Authentifizierung hinzufügen (falls erforderlich):
$response = $client->get(..., [ 'headers' => ['Authorization' => 'Bearer YOUR_API_KEY'] ]);
Schritt 4: TYPO3-Konfiguration prüfen
- Stelle sicher, dass
allow_url_fopen = Onin derphp.iniaktiviert ist. - Falls SSL-Probleme auftreten, deaktiviere die Zertifikatsprüfung (nur für Tests!):
$response = $client->get(..., ['verify' => false]);
3. Betroffene TYPO3 Extension¶
Der Fehler stammt nicht aus einer offiziellen TYPO3-Extension, sondern aus:
-
Einer benutzerdefinierten Extension oder einem Skript in
/public/index.php. - Möglicherweise handelt es sich um eine selbst entwickelte Extension (z. B. für die Integration des "Ratsinformationssystems").
Empfehlung:
- Prüfe, ob die Extension Dokumentation oder Support hat.
- Falls es sich um eine Drittanbieter-Extension handelt, kontaktiere den Entwickler (z. B.
rietberg.ratsinfomanagement.net).
4. Confidence (0-100%)¶
| Aspekt | Confidence |
|---|---|
| Ursache (HTTP 500) | 95% |
| Lösung (Guzzle + Fehlerbehandlung) | 90% |
| Betroffene Extension | 80% |
| Gesamt | 88% |
Begründung:
- Der 500er-Fehler ist klar identifiziert, aber die genaue Ursache auf dem Zielserver (z. B. Datenbankfehler, falsche Parameter) kann ohne Zugriff auf die API nicht abschließend geklärt werden.
- Die vorgeschlagene Lösung (Guzzle + Fehlerbehandlung) ist best practice für TYPO3 und sollte das Problem lösen, falls die API korrekt funktioniert.
Nichts anzuzeigen