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