Hio leute, kleine frage, aber wie kann ich folgendes problem lösen:
es tritt nur im ie6 auf: ich lade meine css datein etc über eine php datei in mein php document rein.
in der script.php gibt es lediglich den aufruf file, der die css styles ausgibt und die session_start();, ist wichtig damit ich weis, welche datein ich hinzufügen muss. so damit alle browser das ganze auch als eine css datei erkennen sende ich folgenden header: header("Content-Type: text/css; charset=utf-8");
ie7 und ff zeigen alles super an. wenn ich jeodch mit dem ie6 die seite aufrufe lädt der das stylesheet nicht. aktualisiere ich die seite, gehts. nur, wieso!? wenn ich das session_start(); raus mache gehts ohne probleme. ich hab auch schon versucht den header vor der session zu senden, bringt alles nix.
irgendne idee?
IE6 Session Problem
gepostet vor 16 Jahre, 8 Monate von DarkPrisma
gepostet vor 16 Jahre, 8 Monate von knalli
Session vor dem Header ist schon richtig, wenn mich mein Hirn nicht im Stich läßt. Ich würde 'mal checken, ob dein eigentliches Script auch die Session korrekt schließt - also sobald irgendwine Ausgabe kommt, die Session schon geschlossen wurde.
Außerdem checke mal den Cache; nicht das der bei dir im Zusammenhang mit der Session im IE Problemchen macht..
Dann..wofür ist bei die Session in dem CSS von Belangen?
Außerdem checke mal den Cache; nicht das der bei dir im Zusammenhang mit der Session im IE Problemchen macht..
Dann..wofür ist bei die Session in dem CSS von Belangen?
gepostet vor 16 Jahre, 8 Monate von Otteros
Original von knalli
Dann..wofür ist bei die Session in dem CSS von Belangen?
blind oder , er hat doch geschrieben, damit er weiß, welche Teile des CSS er versenden muss
Aber zurück zum Problem, mir fällt da auch nicht mehr ein als Knalli gesagt hat
gepostet vor 16 Jahre, 8 Monate von Kampfhoernchen
Andere Frage: Wozu eigentlich? CSS kann ja nicht so viel sein dass sich da ein splitten lohnt, oder?
Ansonsten Knallis verdacht prüfen, ggf. mit den ob_*-Funktionen arbeiten.
Ansonsten Knallis verdacht prüfen, ggf. mit den ob_*-Funktionen arbeiten.
gepostet vor 16 Jahre, 8 Monate von Kallisti
Ich wuerde allein aus caching Gruenden schon statische css Dateien nehmen und je nach Bedarf die benoetigte Datei einbinden. Ansonsten ist es ja auch nicht schlimm eine Css File zu nutzen, die mehr Definitionen enthaelt, als die aktuelle Seite braucht - sicher weniger Traffic, wenn das einmal gecached wird, also wenn jedes mal ne dynamische geladen wird.
Das Problem wird sein, dass session_start nen cookie setzt und der IE 6 da wahrscheinlich einfach einen Bug hat, der sagt cookie + css = nein danke, kann das sein?
css.tests.free.fr/en/css_dyn2.php
Beschreibt dasselbe und funktioniert im IE6... - allerdings mit inline css. ^^
Die Reihenfolge sollte ziemlich egal sein, da sowohl cookie, wie auch content http header sind, solang die vor dem eigentlichen Inhalt der Seite kommen, passt das.
Das Problem wird sein, dass session_start nen cookie setzt und der IE 6 da wahrscheinlich einfach einen Bug hat, der sagt cookie + css = nein danke, kann das sein?
css.tests.free.fr/en/css_dyn2.php
Beschreibt dasselbe und funktioniert im IE6... - allerdings mit inline css. ^^
Die Reihenfolge sollte ziemlich egal sein, da sowohl cookie, wie auch content http header sind, solang die vor dem eigentlichen Inhalt der Seite kommen, passt das.
gepostet vor 16 Jahre, 8 Monate von Klaus
gute Idee. mach dein CSS statisch und die paar dynamischen Anweisungen inline einbinden - fertig.
gepostet vor 16 Jahre, 8 Monate von DarkPrisma
moin leute,
kam grade erst von der arbeit, werds mir mal weekend angucken... kann man irgendwie bei den session cookie einstellen, auf welcher domain diese gelten soll??
kam grade erst von der arbeit, werds mir mal weekend angucken... kann man irgendwie bei den session cookie einstellen, auf welcher domain diese gelten soll??
gepostet vor 16 Jahre, 8 Monate von knalli
Original von Klaus
gute Idee. mach dein CSS statisch und die paar dynamischen Anweisungen inline einbinden - fertig.
Darauf zielte meine letzte Frage: Das verdammte CSS würde ich immer so statisch machen wie es geht.. nur im Notfall dynamisch. Ich kenne die Situation nicht, aber evtl. kriegt man das gleiche auch hin, wenn man in der XML/HTML Ausgabe einfach nur einen Klassenname toggelt etcpp. Wesentlich performanter.
gepostet vor 16 Jahre, 8 Monate von Fornax
Original von DarkPrisma
kann man irgendwie bei den session cookie einstellen, auf welcher domain diese gelten soll??
session_set_cookie_params
gepostet vor 16 Jahre, 8 Monate von DarkPrisma
leute ich habs: ob_start('ob_gzhandler'); das war das problem, damit kommt der ie6 wohl nicht gut klar... stellt sich nur die frage, wieso!?
gepostet vor 16 Jahre, 8 Monate von Klaus
weil er kein gzip bei CSS-Dateien mag?
gepostet vor 16 Jahre, 8 Monate von DarkPrisma
nein, das ist ok. komische sache
gepostet vor 16 Jahre, 8 Monate von knalli
Ich würde gzip auch nur dann verwenden, wenn der Browser sagt, das er das akzeptiert.. und das wird der IE ja bestimmt nicht. Wie gesagt, ein Überdenkung eines statischen CSS wäre auch nicht verkehrt.
gepostet vor 16 Jahre, 8 Monate von DarkPrisma
das kranke ist ja, der ie macht es, aber nur auf eine etwas andere art.
{
$_gziplevel = 9;
$_usercache = 0;
if(self::$gzip){
$compress = 0;
if(strpos(' '.$_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false){
header('Content-Encoding: x-gzip');
$compress = 1;
}elseif(strpos(' '.$_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false){
header('Content-Encoding: gzip');
$compress = 1;
}
$output = ob_get_contents();
ob_end_clean();
if($compress == 1) $output = "\x1f\x8b\x08\x00\x00\x00\x00\x00".substr(gzcompress($output, $_gziplevel), 0, -4).pack('V', strlen($output));
}
header('Content-length: '.strlen($output));
if(!$_usercache){
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header('Pragma: no-cache');
}
echo $output;
flush();
exit;
}
so geht das super gut.
public static function zipcontent()
{
$_gziplevel = 9;
$_usercache = 0;
if(self::$gzip){
$compress = 0;
if(strpos(' '.$_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false){
header('Content-Encoding: x-gzip');
$compress = 1;
}elseif(strpos(' '.$_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false){
header('Content-Encoding: gzip');
$compress = 1;
}
$output = ob_get_contents();
ob_end_clean();
if($compress == 1) $output = "\x1f\x8b\x08\x00\x00\x00\x00\x00".substr(gzcompress($output, $_gziplevel), 0, -4).pack('V', strlen($output));
}
header('Content-length: '.strlen($output));
if(!$_usercache){
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header('Pragma: no-cache');
}
echo $output;
flush();
exit;
}
so geht das super gut.