Hallo,
Danke fuer die Beschreibung.
außerdem kann man auch seine einträge in excel öffnen (sprich es werden alle einträge des users aus der db rausgeholt und in ein excel-sheet eingetragen)
Was heisst das konkret?
Schreibst Du eine "physische" Datei und laesst
dann deren Inhalt durch die export.php "fliessen"?
Oder sendet das Skript export.php die Daten direkt?
In welchem Format? CSV?
dazu wird die export.php aufgerufen die so aussieht:
$fileName ="DB-Inhalt".date('dmy');
Kleiner Tip: Zwecks Sortierbarkeit u.s.w. wuerde
ich den Dateinamen eher in umgekehrter Reihenfolge
aufbauen: ymd oder Ymd.
header("Content-Type: application/vnd.ms-excel");
header("Content-Transfer-Encoding: base64\n");
header("Content-Disposition: attachment; filename="".$fileName.".xls"");
?><html>.....
^^^^^
Was macht jetzt hier das <html>?
Schickst Du etwa eine HTML-Seite, nachdem Du gesagt hast,
jetzt kaeme eine Excel-Tabelle?
(Kann sein, dass das geht. Kenne die HTML-Faehigkeiten
von Excel nicht. ;-)
Was schickst Du alles, d.h. worin besteht die
eigentliche Ausgabe des Skripts?
(Die ersten paar Zeilen duerften uns zum Verstaendnis reichen).
unter https hingegen popt das fenster auf: Dateidownload ..und jetzt steht dateiname: export.php also nicht mal die variable "$fileName" wird erkannt... wenn ich auf ok klicke kommt eine warnmeldung export.php konnte nicht gefunden werden entweder....
Ich kenne mich mit dem MS IE leider nicht aus, kann also
nur mutmassen, warum er sich (aufgrund von Einstellungen)
bei HTTP und HTTPS unterschiedlich verhaelt, z.B. dass er
- keine Cookies akzeptiert,
- keine 302-Weiterleitungen ausfuehrt
- auf Vorschlaege (Content-... Header) anders/nicht reagiert
Was weiss ich...
wenn ich nur das session_start stehenlasse und die if abfrage herausnehme funktioniert es auch nicht... wenn ich session_start auch weglasse funktioniert es >>also liegt es an dem session_start!?
Ich kann mir leider daraus keinen Reim machen.
Was schickt das Skript denn als HTTP-Head?
Ist der jetzt von dem Script, das die Ausgabe machen sollte,
das Du oben export.php genannt hast?
_Dessen_ HEAD waere interessant, und zwar, wenn es ueber
HTTPS abgerufen wird.
302 Found
Also eine Umleitung.
Dann duerften die darauf folgenden Content-Dingsbums Header
_dieses_ Skripts nicht mehr interessant/zutreffend sein, sondern
diejenigen des Skripts, auf das umgeleitet wird.
=> Ich vermute, Du solltest beim Fall, dass Du die Leute umleiten willst,
nach dem Umleitungs-header() ein exit; einbauen.
Steht uebrigens auch im Manual zu header()!
if ($_SESSION['Login'] != "true" OR !$_SESSION['Login'] OR $_SESSION["Master"] != 1)
{
header("Location: https://".$DOCUMENT_ROOT.$Home_URL."/index.php");
exit;
}
Ganz korrekt (nach HTTP/1.1) sollten uebrigens nach einem 30x-Head
noch ein paar Zeilen HTML mit einem klickbaren Link zur
neuen URL folgen.
In Opera kann man Umleitungen ausschalten, dann wird
ebendieses HTML dann angezeigt.
Der Content-Type einer Umleitung waere dann also text/html.
Content-Disposition: attachment; filename="DB-Inhalt 110304.xls"
Wo kommt dieser Leerschlag her? ---------------------> ^
Das folgende ist dann der Head der Seite, auf die
Umgeleitet wird:
200 OK
[...]
Content-Type: text/html
Server: Apache/1.3.27 (Linux/SuSE) mod_python/2.7.8 Python/2.1.1 PHP/4.3.4 mod_perl/1.26 PHP-CGI/0.1b
So, ich muss auf den Weg.
Heute hoerst Du nicht mehr von mir. Morgen wieder.
Hoffe, Du kommst weiter.
Ach ja, das Tool von Schroeppl ist auch ganz praktisch.
Damit kannst Du nicht nur den HEAD, sondern (wenn Du
GET waehlst) auch die ersten paar Zeilen der eigentlichen
Ausgabe des Skripts sehen.
http://www.schroepl.net/cgi-bin/http_trace.pl
HTH, mfg + gute Nacht
Thomas