Header Problem

  • Hallo liebe Community,
    ich möchte per Heide eine ZIP Datei zum Download bereitstellen. So sieht der Code aus:

    PHP
    header("Content-Type: application/zip");header('Content-Disposition: attachment; filename="Archiv"'); if (!headers_sent()) {readfile('secure.zip');	}



    Doch es kommt der Error, woran liegt dass? Wo ist mein Fehler?

    Code
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/web1/html/secure.php:4) in/var/www/web1/html/secure.php on line 9
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/web1/html/secure.php:4) in/var/www/web1/html/secure.php on line 10
  • PHP
    <form method="post" action=""><input type="submit" name="gen" value="Generieren"><br /></form><?php if(isset($_POST[gen])) {//$dateien  = is_array($tmp = glob("secure/*")) ? count($tmp) : 0;system('cd secure && ffmpeg -f image2 -i image%d.jpg output.mp4', $out);system('cd secure && zip secure.zip output.mp4 && rm output.mp4', $out);


    das steht davor

  • Hier nochmal der ganze Code, ist übersichtlicher^^

    PHP
    <form method="post" action=""><input type="submit" name="gen" value="Generieren"><br /></form><?php if(isset($_POST[gen])) {//$dateien  = is_array($tmp = glob("secure/*")) ? count($tmp) : 0;system('cd secure && ffmpeg -f image2 -i image%d.jpg output.mp4', $out);system('cd secure && zip secure.zip output.mp4 && rm output.mp4', $out);header("Content-Type: application/zip");header('Content-Disposition: attachment; filename="secure.zip"'); // Hier kann der übermittelte Dateiname geändert werdenif (!headers_sent()) {readfile('secure.zip');	} }?>
  • Du kannst den Header nicht mehr modifizieren, wenn bereits eine Ausgabe erfolgt ist ;)


    Du musst den PHP-Code an erste Stelle schreiben, vor der HTML-Ausgabe.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Danke habe das ganze jetzt so gelöst:

    PHP
    <?php session_start();if($_SESSION[download] == 'true') {	header("Content-Type: application/zip");	header('Content-Disposition: attachment; filename="secure.zip"'); // Hier kann der übermittelte Dateiname geändert werden	if (!headers_sent()) {	readfile('secure.zip');		}	}if(isset($_POST[gen])) {//$dateien  = is_array($tmp = glob("secure/*")) ? count($tmp) : 0;system('cd secure && ffmpeg -f image2 -i image%d.jpg output.mp4', $out);system('cd secure && zip secure.zip output.mp4 && rm output.mp4', $out);$_SESSION[download] = 'true';}?><form method="post" action=""><input type="submit" name="gen" value="Generieren"><br /></form>