zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden [php/http] datei an client senden

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 21.03.2005, 17:33
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 27.01.2005
Beiträge: 30
Xenon befindet sich auf einem aufstrebenden Ast
Standard [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);
anmerkungen: am anfang des scripts steht ein ob_start(); der der code oben wird irgendwann in der mitte des scripts ausgeführt.

+++ 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
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 21.03.2005, 18:16
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.01.2005
Beiträge: 696
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: [php/http] datei an client senden

Zitat:
Zitat von Xenon
hatte dieses thema hier schon einmal eingebracht,
und da wurde auch schon eine lösung vorgeschlagen: http://www.xhtmlforum.de/viewtopic.p...wnload+obstart
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 21.03.2005, 18:59
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.953
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard Re: [php/http] datei an client senden

Zitat:
Zitat von Xenon
hatte dieses thema hier schon einmal eingebracht, aber die diskussion nam leider einen weg, den ich nicht weiterverfolgen wollte, deswegen hier ein neuer thread:
Darf ich dich aus deinem letzten Thread mal zitieren?
Zitat:
Zitat von Xenon
vielen danke erst einmal für die hilfe!!! es hat geklappt mit dem ob_end_clean();
Wo liegt das Problem?

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
  #4 (permalink)  
Alt 21.03.2005, 19:00
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 27.01.2005
Beiträge: 30
Xenon befindet sich auf einem aufstrebenden Ast
Standard

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...
Mit Zitat antworten
  #5 (permalink)  
Alt 21.03.2005, 19:11
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.953
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Dann beende das Script nach dem readfile() halt mit die(). So schwer kann es doch nun eigentlich nicht sein, mal in der PHP-Doku nachzuschauen. Außerdem ist deine Frage schon wieder im falschen Forum, denn mit XHTML hat das nichts zu tun. Dafür ist "Serveradministration und serverseitige Scripte" zuständig.

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
  #6 (permalink)  
Alt 21.03.2005, 19:24
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 27.01.2005
Beiträge: 30
Xenon befindet sich auf einem aufstrebenden Ast
Standard

hmm - also der code, der danach kommt hat schon seinen sinn und soll auch ausgeführt werden, deswegen ist die() nicht gerade eine gute lösung!
Mit Zitat antworten
  #7 (permalink)  
Alt 21.03.2005, 19:36
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.953
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Xenon
hmm - also der code, der danach kommt hat schon seinen sinn und soll auch ausgeführt werden, deswegen ist die() nicht gerade eine gute lösung!
Dann machst du halt nach dem readfile() noch mal ob_start() und am Ende des Script auch noch mal ob_end_clean().

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
  #8 (permalink)  
Alt 21.03.2005, 19:48
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 27.01.2005
Beiträge: 30
Xenon befindet sich auf einem aufstrebenden Ast
Standard

danke für die antwort, aber das funktioniert leider nicht

nebenbei gefragt: gäbe es denn eine andere (funktionierende) möglichkeit, die datei zum client zu senden?
Mit Zitat antworten
  #9 (permalink)  
Alt 21.03.2005, 20:05
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.953
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Xenon
danke für die antwort, aber das funktioniert leider nicht
Bei dieser "ausführlichen" Fehlerbeschreibung kann ich dir leider nicht helfen. Grundsätzlich funktioniert das jedenfalls problemlos.

Zitat:
Zitat von Xenon
nebenbei gefragt: gäbe es denn eine andere (funktionierende) möglichkeit, die datei zum client zu senden?
Ich denke das Senden selbst funktioniert? Warum brauchst du dann eine andere Möglichkeit?

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 21.03.2005, 20:17
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 27.01.2005
Beiträge: 30
Xenon befindet sich auf einem aufstrebenden Ast
Standard

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

?>
included wird alsoauch die datei, die besagten code-schnipsel enthält, mit dem die datei runtergalden werden soll
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...
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ä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


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:31 Uhr.