Mailinglisten-Archive |
Hi! Ich habe ein großes Problem in einem Script. Dieses Script wird per GET- Parameter aufgerufen und erstellt abhängig von diesem Parameter eine PDF- Datei, und soll diese direkt ausgeben. Als zusätzliches Feature darf dieses Script nur von Usern aufgerufen werden, die per voriger Session authentifiziert sind. Jedoch funktioniert das Script nur ohne eine Session zu initialisieren. Sobald ein session_start() dazu kommt, produziert das Script keine Ausgaben mehr. Es erscheint im IE5 nur das Fenster zum speichern oder aufrufen, aber egal was man klickt heißt es, die Datei könne nicht gedownloadet werden. Hier das Script: -------------------- <?PHP unset($user); session_start(); $htmloutput = "false"; require "functions.inc.php"; if ($user["auth"] == "true" AND isset($pdfauftragid) AND $pdfauftragid != "") { $var = PrepareGet($pdfauftragid, $user[id]); if ($var == "false") { echo "<html><body>Sie dürfen die PDF-Dateien nur im eingeloggten Zustand betrachten, und nur Ihre eigenen Aufträge einsehen.</body></html>"; exit; } else { ShowPDF($var); $fp = fopen("bestellung_" .$var[globalauftragid]. ".pdf", "r"); header("Content-type: application/pdf"); header("Content-disposition: filename=handypak-bestellung.pdf"); passthru($fp); } } else { echo "<html><body>Sie dürfen die PDF-Dateien nur im eingeloggten Zustand betrachten, und nur Ihre eigenen Aufträge einsehen.</body></html>"; exit; } ?> -------------------- Die functions.inc.php-Datei enthält *keine* Whitespaces. Überhaupt ist die functions.inc.php-Datei nur mit Funktionen gefüllt, der rest wird aufgrund der $htmloutput-Variable nicht ausgegeben (<body> und <head>-Tags). Das interessante ist also, daß sobald ich session_start() auskommentiere und die benötigten Variablen hart einprogrammiere ($user[auth] = true), dann klappt alles. Irgendwo fuscht dieses session_start() also anscheinend in den headern rum und verhindert die Möglichkeit, daß später im Script per passthru() meine PDF-Datei durchgeschleift wird. Liegt hier ein Fehler von mir vor? Ich bin jedenfalls auf die session-variable angewiesen, weil ja sonst jeder die PDF-Dateien von anderen einsehen kann...? Bye, Garvin.
php::bar PHP Wiki - Listenarchive