Ich habe ein webbasiertes System mit Benutzer-Login-Daten basierend auf Sitzungsvariablen erstellt.Wenn ich Dateien mit php/html exportiere, werden meine Sitzungsdaten zurückgesetzt
Manchmal, wenn ein Benutzer angemeldet ist und versucht, Tabellen in CSV oder XLS zu exportieren, scheinen die Sitzungsdaten zu löschen und der Benutzer wird aus dem System geworfen.
Dies ist der Header-Code, den ich verwende, um die Datei zu bedienen.
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;filename=file.xls");
header("Content-Transfer-Encoding: binary ");
Wenn es hilft scheint es häufiger auf ie6 zu sein. Ich habe mich gefragt, ob jemand ähnliche Probleme hatte.
Dies ist der neueste Header, den ich ausprobiert habe. Immer noch kein Glück. Habe auch das gleiche Verfahren in FF/Opera/Safari getestet und es geht ihnen gut.
header('Cache-Control: no-store, private, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0, max-stale = 0', false); // HTTP/1.1
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Expires: 0', false);
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Pragma: no-cache');
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment;filename=$fileName");
header("Content-Transfer-Encoding: binary ");
die abgelaufenen Header sollte in diesem Format sein (ja GMT): Läuft ab: Do, 01. Dez. 1994 16:00:00 GMT – OIS