php sessions

controlboy

Grünschnabel
Hallo,
ich habe ein etwas diffiziles Problem mit Sessions und PDF.

Folgende Situation:

Ich öffne ein PDF binär mit PHP und fülle Formularfelder dynamisch ebenfalls mit PHP aus. Dazu benutzte ich reguläre Ausdrücke. Das funktioniert soweit auch wunderbar. Nun sollen aber die Daten, die ich zum Auffüllen benutze, aus der akutellen Session kommen. Dazu notiere ich logischerweise

PHP:
session_start();

am Anfang des Dokuments, welches preview.php heisst. Diese Datei öffnet nun ein PDF binär und sendet es (nun verändert) zurück.
Um es als PDF im Browser erkennbar zu machen, notiere ich folglich folgenden Code:

PHP:
 header("Content-type: application/octet-stream");
 header("Content-Disposition: attachment; filename=\"$pdffile\"");
 header("Content-type: application/pdf");

Das funktioniert auch soweit, allerdings murrt der Firefox mit einer kleinen Fehlermeldung beim Öffnen des PDFs und der IE 6 stellt es gar nicht dar (Fehlermeldung hier: pdf konnte nicht gefunden werden). Lasse ich die session_start() funktion am Anfang weg, funktioniert es.

Das hat was mit dem Header zu tun, dass ist klar.... aber wo genau könnte das Problem liegen?

Weiss jemand Rat?

Danke
controlboy
 
Probier mal Folgendes:
PHP:
header('Content-Type: text/plain');
session_start();
exit;
Wenn es durch den Aufruf von session_start() zu einem Fehler kommt, sollte dieser nun zu sehen sein.
 
Hallo Gumbo,

danke für die Antwort. Nach Einfügen deines Quellschnipsels öffnet sich nur ein leeres Dokument. Es wird kein Fehler angezeigt und das PDF wird auch nicht generiert...
 
nun liefere ich die lösung gleich selbst:

PHP:
session_cache_limiter('private');

diese kleine Zeile muss vor session_start() stehen, dann funktioniert das auch im IE.

Danke trotzdem!

Gruss
controlboy
 
Zurück