diff --git a/process_email.php b/process_email.php index bebf0d4..36e9792 100644 --- a/process_email.php +++ b/process_email.php @@ -278,7 +278,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $emailContent = @file_get_contents($fileTmpPath); // @ zur Unterdrückung von Warnungen if ($emailContent === false) { - header('Location: index.php?error=' . urlencode('Fehler beim Lesen der hochgeladenen Datei oder Datei ist leer.')); + header('Location: index.php?error=' . rawurlencode('Fehler beim Lesen der hochgeladenen Datei oder Datei ist leer.')); exit(); } @@ -307,12 +307,13 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { ]; // Ergebnisse als JSON enkodieren und base64 enkodieren, um sie in der URL zu übergeben - $encodedResult = base64_encode(json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PARTIAL_OUTPUT_ON_ERROR)); // JSON_UNESCAPED_UNICODE für Emojis - header('Location: index.php?result=' . urlencode($encodedResult)); + // NEU: rawurlencode() statt urlencode() für robustere URL-Parameter + $encodedResult = rawurlencode(base64_encode(json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PARTIAL_OUTPUT_ON_ERROR))); + header('Location: index.php?result=' . $encodedResult); exit(); } else { - header('Location: index.php?error=' . urlencode('Ungültiger Dateityp. Bitte laden Sie eine .eml- oder .txt-Datei hoch.')); + header('Location: index.php?error=' . rawurlencode('Ungültiger Dateityp. Bitte laden Sie eine .eml- oder .txt-Datei hoch.')); exit(); } } else { @@ -342,7 +343,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { break; } } - header('Location: index.php?error=' . urlencode('Fehler beim Hochladen der Datei: ' . $uploadError)); + header('Location: index.php?error=' . rawurlencode('Fehler beim Hochladen der Datei: ' . $uploadError)); exit(); } } else {