claus ginsel: wiederholtes Absenden Formular

Beitrag lesen

Moin Martin,

wie Du das so schreibst, wird das Verhalten klar

<?php
	function makeDownload($Dateiname_Server, $Datei_Pfad, $Datei_MIME, $Dateiname_Client) 
	{
		header('X-Content-Type-Options: nosniff');			
		header("Content-Type: ".$Datei_MIME);
		header("Content-Disposition: attachment; filename=".$Dateiname_Client);
		header("Content-Length: ".filesize($Datei_Pfad.$Dateiname_Server));
		readfile($Datei_Pfad.$Dateiname_Server);
	} 
?>

readfile ist die letzte Anweisung in php, es gibt nichts mehr wie exit, also wird der HTML-Teil auch übertragen, nur vom Browser wegen Content-Length nicht berücksichtigt.

Angenommen, ich würde Content-Length um den Betrag der Index.php erhöhen, dann würde diese mit ausgegeben. Allerdings durch Content-Disposition vom Browser nicht als gerendertes HTML, sondern die Quelldaten von Index.php an die Download-Datei rangehängt. Das wäre im Ergebnis so, als würde ich vor Absenden der Header eine Ausgabe tätigen, worauf ich früher auch mal reingefallen bin.

Falls aus

Allerdings ein nachfolgender Redirect wurde ausgeführt, jedoch ...

ein Missverständnis erwachsen sein sollte: Ich habe den Begriff Redirect für jegliche Weiterleitung über header(Location: ...) benutzt. Möglicherweise versteht Ihr darunter lediglich die Statuscode 301 und 302?

Besten Dank für die erhellenden Infos

Gruß Claus