cgboard - classic games

Normale Version: Download über Header (Problem - Gelöst)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich hab schon wieder ein Problem, da ich jetzt an der Handbuchsektion Arbeite wo die Downloads aus der Übersicht aufgerufen werden.

Der Link sieht da so aus, der direkt zum Download führt.
index.php?page=books&id=1

Jetzt hab ich folgenden Code, der einen Download erzwingen soll, auch wenn es nur PDF Dateien sind.

Code:
// First, see if the file exists
   $file = $row['dlurl'];

   if (!is_file($file)) { die("404 File not found!"); }

// Gather relevent info about file
   $filesize = filesize($file);
   $filename = basename($file);
   $file_extension = strtolower(substr(strrchr($filename,"."),1));

// This will set the Content-Type to the appropriate setting for the file
   switch( $file_extension ) {
     case "pdf": $ctype="application/pdf"; break;
     case "exe": $ctype="application/octet-stream"; break;
     case "zip": $ctype="application/zip"; break;
     case "rar": $ctype="application/rar"; break;
     case "doc": $ctype="application/msword"; break;

     default: $ctype="application/force-download";
   }

// Begin writing headers
   header("Pragma: public");
   header("Expires: 0");
   header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
   header("Cache-Control: public");
   header("Content-Description: File Transfer");

// Use the switch-generated Content-Type
   header("Content-Type: $ctype");

// Force the download
   header("Content-Disposition: attachment; filename=".$filename);
   header("Content-Transfer-Encoding: binary");
   header("Content-Length: ".$filesize);
   @readfile($file);
   exit;

Es lädt zwar die Datei, auch mit richtiger Dateigröße, nur lässt die Datei sich nicht ausführen.
Hab mal so eine Datei mit dem Editor geöffnet, da hat es nämlich die Datei etwas verstümmelt und bevor der zur Datei passende Code kommt, hat es den gesamten Quelltext davor rein geschrieben.

Kann man irgendwie Verhindern das es den Quelltext in die zu downloadende Datei schreibt.
Wenn ich eine Textdatei mit dem Code downloade, wird nichts weiter reingeschrieben.

Bis jetzt laufen auch noch alle Tests Lokal ab, hab also noch nichts Online getestet.

EDIT: Hat sich erledigt, lag daran das ich in der index.php wo ich die Seite include vorher noch eine Template lade.
Jetzt hab ich die rauß genommen und include die in jeder einselnen tpl Datei.

So gehts. Smile