Aus Datenbank generierte XML-Datei senden

Moritz123

Erfahrenes Mitglied
Hallo!

ich habe hier eine PHP-Datei, die mir ein XML-Dokument generiert. Dieses wird aber lediglich angezeigt und nicht als physische Datei auf dem Server abgelegt.
Nun würde ich das Ganze gerne so machen, dass beim Aufruf der PHP-Datei die XML gesendet, also der Öffnen/Speichern-Dialog angezeigt wird.
Ist das überhaupt möglich, wenn keine physische Datei auf dem Server liegt und wenn ja, wie?

Vielen Dank!
 
Hallo!
vielen Dank für deine Antwort. Die von die angesprochene Lösung geht aber doch davon aus, dass die XML-Datei auf dem Server vorhanden ist. Das ist ja bei mir nicht der Fall, da sie ja "On-The-Fly", also ohne zwischenspeichern auf dem server, aufgerufen wird.
 
Nein, das Ergebnis muss nicht auf dem Server als Datei existieren. Du kannst den Inhalt aus der Datenbank auch unter die header-Aufrufe ausgeben!
 
Also so:
PHP:
		header("Content-Type: text/xml"); 
		header("Content-Disposition: attachment; filename=stundenzettel.xml");
		readfile('$PHP_SELF');


Vielen Dank!
 
PHP:
header("Content-Type: text/xml"); 
header("Content-Disposition: attachment; filename=stundenzettel.xml");
readfile('$PHP_SELF');
Ich habe das jetzt so realisiert, was aber leider nicht das gewünschte ergebnis bringt. Mit diesem Code will immer die PHP-Datei öffnen, was natürlich zu nichts führt...
 
Der Fehler liegt darin, das du $PHP_SELF ausliest, sprich wenn du die Datei aufrufst wird die selbige ausgelesen. In die readfile() Funktion muss der Dateiname, des weiteren hast du flasch gequotet, es müsste readfile("$PHP_SELF"); heißen!
 
Ok, ich hab den Code jetzt so modifiziert:
PHP:
header("Content-Type: text/xml"); 
header("Content-Disposition: attachment; filename=stundenzettel.xml");
readfile("stundenzettel.xml");
wobei stundenzettel.xml die datei ist, die erzeugt werden soll. Leider geht das so immer noch nicht.
 
Zurück