|
|||
[php/http] datei an client senden
hi there!
hatte dieses thema hier schon einmal eingebracht, aber die diskussion nam leider einen weg, den ich nicht weiterverfolgen wollte, deswegen hier ein neuer thread: dummerweise fehlt es mir an kenntnis der webserver/http-interna, um diesen problem selber zu lösen, deswegen würde ich mich über produktive antworten/lösungsansätze/lösungen/etc sehr freuen! also: ich habe eine funktion, die einen dateinamen auf dem server übergeben bekommt und diese an den client schicken soll. normal per a href geht das leider nicht, da die datei in einem htaccess-geschützen verzeichnis liegt und der user dieses passwort nicht kennt. aktuell lese ich die datei in den header und schicke sie als attachment mit (soweit ich das richtig verstanden habe). problem ist, der quellcode repräsentiert NICHT meinen wissensstand, ich bin auf diesem gebiet sozusagen newbie Code:
header("HTTP/1.1 200 OK"); header("Content-type: \"application/octet-stream\""); header("Content-Disposition: attachment; filename=\"".basename($filename)."\""); ob_end_clean(); readfile($filename); +++ das problem +++ lade ich die datei mit hilfe des scripts runter, hängt das script den html-quellcode, der NACH dem runterladen der datei noch ausgegeben wird in der datei hinten an. sprich, die datei besteht nach dem runterladen aus dem eigentlichen inhalt gefolgt von html-code... die datei auf dem server ist in ordnung. jemand ne idee, warum und vor alleM wie man es loswird? danke schonmal im vorraus! gruss |
Sponsored Links |
|
|||
Re: [php/http] datei an client senden
Zitat:
|
Sponsored Links |
|
||||
Re: [php/http] datei an client senden
Zitat:
Zitat:
Mario |
|
|||
ja - dabei ging es darum, dass mit readfile() alle daten im buffer mitgesendet wurden, der html-code der aktuellen seite also VOR dem eigentlichen inhalt der datei in selbige eingefügt wurde.
ein leeren des buffers mit ob_end_clean() löste das problem soweit. leider nur auf den ersten blick denn nun hängt der restliche html-code der aktuellen seite HINTEN an der datei dran. mit ein paar buffer-funktionen hab ichs schon versucht, aber das klappt leider nicht. wie schon gesagt kenne ich mich mit der materie (http-protokoll etc) zu wenig aus um zu wissen, WAS GENAU er macht und WARUM dieser fehler auftritt... |
|
||||
Zitat:
Mario |
|
||||
Zitat:
Zitat:
Mario |
Sponsored Links |
|
|||
hi again!
es funktioniert dahingehend nicht, dass kein unterschied zu vorher feststellbar ist (ich habe DIREKT nach dem readfile() ein ob_start() eingebaut. aber egal ob mit flush() am ende des scripts oder ohne (AFAIK brauchts das nicht unbedingt): der html-code, der nach dem senden des headers kommt, steht nach wie vor in der datei... nach einen anderen möglichkeit frage ich, weil ich selber nicht weiss, OB es andere möglichkeiten gibt, ob die jetzt gewählte vielleicht extremst umständlich ist und ein anderer ansatz evtl sinnvoller/besser wäre... ärgere mich hiermit schon ziemlich lange rum... im grossen und ganzen: ein bisschen mehr einblick in meine scriptstruktur: es gibt ein "main-script", nennen wir es mal main.php, das etwa wie folgt aufgebaut ist: Code:
<?php ob_start(); require("datei_mit_mysql_kennwörtern_etc.php"); require("datei_mit_funktionen_etc.php"); // seitenaufbau (header/menü/layout/etc) // steuerungsvariable $page bestimmt, welche seite angezeigt werden soll: switch($page) { include($page . ".php"); } // footer ?> ich weiss: keine templates keine objektorientierung das habe ichauf später verschoben, wenn mein server endlich mal php5 gelernt hat - bislang weigert sich der admin standhaft... |
Sponsored Links |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
IE 6 erkennt seine CSS Datei nicht | Perelina | (X)HTML | 4 | 07.08.2009 19:56 |
Frage : Tempöräre Datei | tichy | Serveradministration und serverseitige Scripte | 3 | 16.06.2009 13:52 |
html Befehle in einer txt Datei? | Magellan | (X)HTML | 19 | 05.06.2008 19:39 |
Lightbox mit zweiter CSS Datei funktioniert nicht | T4ke | CSS | 12 | 11.12.2007 20:20 |
[php/http] datei an client senden | Xenon | Serveradministration und serverseitige Scripte | 0 | 21.03.2005 19:33 |