.htaccess

Erweitern wir mal das Beispiel mit einer kleinen Fehlerbehandlung:
PHP:
<?php

	$download_path = "Scripte/Bannerveraltungsscript.rar";

	if( headers_sent($file, $line) ) {
		die('Header-Fehler: Ausgabe begann in '.htmlspecialchars($file).':'.$line);
	}

	// …
Nun weißt du, wo die Ausgabe begann und was du zu korrigieren hast.

Der „filename“-Parameter enthält übrigens wie der Name schon sagt nur den Dateinamen.
 
Hmm toll der mekert mir das hier an:

Header-Fehler: Ausgabe begann in /homepages/31/d225391915/htdocs/index.php:9

PHP:
<title>MIT-Systems - <?php if ($action == "about") { echo "&Uuml;ber uns"; } elseif ($action == "projects") { echo "Projekte"; } elseif ($action == "systems") { echo "Systeme & Updates"; } elseif ($action == "reference") { echo "Referenzen"; } elseif ($action == "contact") { echo "Kontakt"; } elseif ($action == "impressum") { echo "Impressum"; } elseif ($action == "lizenz") { echo "Lizenzvereinbarung"; } elseif ($action == "agb") { echo "Allgemeine Gesch&auml;ftsbedingungen"; } elseif ($action == "widerruf") { echo "Widerrufsbelehrung"; } elseif ($action == "haftung") { echo "Haftungsausschluss"; } elseif ($action == "buy") { echo "Kaufabwicklung"; } else { echo "Multimedia, Informations- & Telekommunikationssysteme"; } ?></title>

Allerdings wenn ich das weg nehme mekert er immernoch Zeile 9 an! :confused:
 
Dann wirst du doch wohl mit der Ausgabepufferung arbeiten müssen. Füge an den Anfang der „index.php“-Skriptdatei „ob_start();“ und an den Anfang der Download-Skriptdatei „ob_end_clean();“ hinzu.
 
Willst du mich auf den Arm nehmen?

Das geeeeeeht!

Ich suche den ganzen Tag nach einer Lösung und du sagts setz das mal ein! :suspekt:

Warum hast du das nicht schon früher gesagt?

Und es funktioniert!

Dankeschööön! :)
 
So noch ein kleines Problem ist mir aufgefallen;

Ich kann die Datei runterladen! Aber wenn ich Sie entpacke steht da dass keine Archive gefunden wurden und die Datei beschädigt ist!

Was mache ich noch falsch?

PHP:
ob_end_clean();

header("Content-type: application/rar");
header("Content-Disposition: attachment; filename=".$folder."/".$file."");
readfile("".$folder."/".$file."");
 
Hättest du früher den Umstand genannt, dass das genannte Skript in ein anderes eingebunden und dort bereits eine Ausgabe stattfindet, hättest du die Lösung direkt bekommen.

Zu deinem letzten Problem: beende das Skript nach der Ausgabe des Dateiinhalts explizit mit exit;, um mögliche weitere Ausgaben zu verhindern.
 
Was auch komisch ist, dass er vor die Datei jetzt immer ein - macht! Was könnte dabei schief gehen?

Ist vielleich der Content-type falsch?

Den exit habe ich hinzugefügt, bringt aber leider nix!?
 
Wie Gumbo schon mehrmals sagte, application-type auf "application/octet-stream" setzen und hier:
PHP:
header("Content-Disposition: attachment; filename=".$folder."/".$file."");

Kommt nur der Dateiname rein, nicht der Ordner.
 
Ja das hab ich schon lange abgeändert.

Der - ist nun auch verschwunden. Aber irgendwie ist die Datei beschädigt!

PHP:
ob_end_clean();

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=$file");
readfile("".$folder."/".$file."");
exit;
 
Probier’s mal mit einer einfachen Textdatei und prüfe, ob auch alles aber auch nicht mehr als das ankommt.
 

Neue Beiträge

Zurück