Firefox kennt keine CSS-Dateien mit $_GET-Paramtern...

\²³/

Grand Admiral Special
Mitglied seit
12.10.2003
Beiträge
2.249
Renomée
25
  • Spinhenge ESL
Ich habe auf einer Seite das CSS-Script über php dyn. erstellen lassen, je nach dem, was der User ausgewählt hat. Ich übergebe einen Paramter per url an die Datei style.php, die dann das CSS zurückgiebt. Im IE und in Opera fukntioniert das auch aber nicht im Firefox. Was kann ich da machen?
\²³/​
PS: Selbst wenn die Seite .css als Endung hat und ich dem Apache über ein .htaccess-File die Endung als php gebe, funktioniert es nicht.
 
Doch das geht, hab ich selber schon gemacht. Gib mal deinen HTML/PHP Code und am besten einen Link wo ma sich die Seite angucken kann.
 
http://gsoft.gs.funpic.de/index.php?site=index

Im Header:
PHP:
 <LINK REL="stylesheet" type="text/css" href="style.php?style=<?php echo $style ?>">
$style wird über ein Cookie oder über ein Forumlar (oben rechts das) geholt.
Im CSS steht das hier:
PHP:
    $color = array();

    switch($_GET["style"]) {
        case "blackwhite":
            $color['header']      = "#FFFFFF";
            $color['font_header'] = "#000000";
            $color['content']     = "#000000";
            $color['footer']      = "#FFFFFF";
	    $color['font_footer'] = "#000000";
            $color['a_hover']     = "#ECECC9";
            $color['font']        = "#FFFFFF";
            $color['code']        = "#20558B";
            $color['a']           = "#36A977";
            break;

            default:
            $color['header']      = "#FFFFFF";
	    $color['font_header'] = "#000000";
            $color['content']     = "#E4E4E4";
            $color['footer']      = "#FFFFFF";
	    $color['font_footer'] = "#000000";
            $color['a_hover']     = "#ECECC9";
            $color['font']        = "#000000";
            $color['code']        = "#FEFACB";
            $color['a']           = "#AC7712";
            brack;
        }
Stäter werden die einzelnen Array-Elemente dann immer mit echo an die entsprechene Stelle ausgegeben.
\²³/​
 
Du implementierst die CSS Datei falsch, mach es mal so:

<style type="text/css" media="all">@import "/style.php?style=<?=$style?>";</style>
 
Die Lösung ist total einfach, ich hab aber auch Monate gebraucht bis ich's raus hatte.

Du musst ganz oben in deine CSS-PHP-Datei reinschreiben
Code:
<?
header("content-type:text/css");
dann läuft es wohl.

Firefox weist nur dann Stylesheets zu, wenn sie den richtigen "Content-Type" haben. Für CSS-Dateien ist dies text/css.
PHP-Dateien haben auf normalen Systemen aber den Content-type application/octet-stream. Man kann sie jedoch als alles mögliche (auch als image/png z.B.) ausliefern lassen.
 
Ok. Ich habe jetzt auch noch zusätzlich in die HTML-Ausgabe im Header
HTML:
<meta http-equiv="Content-Style-Type" content="text/css">
angegeben. Jetzt sollte es funktionieren...
\²³/​
PS:
TCM schrieb:
warum definierst du nicht einfach alle styles auf einmal mit jeweils unterschiedlichen title tags, dann kann sich der user im browser den style aussuchen...
Funktioniert das denn in jedem Browser?
 
Zuletzt bearbeitet:
Zurück
Oben Unten