PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP-Script um eine CSS-Datei auszuwählen geht nihcht



Sebastian
04.09.2004, 19:36
Also ich habe jetzt ewig darüber gehangen, aber es will einfach nicht gehen.
Es handelt sich hierbei um ein eigentlich ziemlich einfaches Script mit dem man in einen Formular ein Design auswähllen kann und je nach Design wird immer eine andere CSS-Datei im Header integriert.
Das Script sieht so aus:


// Wenn kein Style ausgewählt wurde wird die Standard-CSS-datei genommen
if(!isset($style)) {
echo('<link rel="stylesheet" href="standard.css" type="text/css" />');
}
else {
if($style==Standard) {
echo('<link rel="stylesheet" href="standard.css" type="text/css" />');
}
else {
if($style==Style1) {
echo('<link rel="stylesheet" href="st1.css" type="text/css" />');
}
else {
if($style==Style2) {
echo('<link rel="stylesheet" href="st2.css" type="text/css" />');
}
}
}
}

Das Formular, was aber wohl eher unwichtig ist, sieht so aus:


<form method="get" action="<?=$PHP_SELF?>">
<select name="style">
<option>Standard</option>
<option>Style1</option>
<option>Style2</option>
</select><br />
<input type="submit" value="Go" />
</form>

Wenn ich jetzt "Standard " auswähle kommt das Standard-CSS, bei Style 1 kommt das Style1-CSS, aber wenn man jetzt Style2 nimmt, kommt auch das Style1-CSS.
Wer findet den fehler oder gibt es evtl. noch eine andere Möglichkeit so etwas zu bewerkstelligen? :D

mitaki
04.09.2004, 20:19
Wahrscheinlich... versuch das:
<?php

if ( ! isset ( $_GET['style'] ) ) {
echo '<link rel="stylesheet" href="standard.css" type="text/css" />';
} elseif ( $_GET['style'] == 'Standard' ) {
echo '<link rel="stylesheet" href="standard.css" type="text/css" />';
} elseif ( $_GET['style'] == 'Style1' ) {
echo '<link rel="stylesheet" href="st1.css" type="text/css" />';
} elseif ( $_GET['style'] == 'Style2' ) {
echo '<link rel="stylesheet" href="st2.css" type="text/css" />';
} else {
echo '<link rel="stylesheet" href="standard.css" type="text/css" />';
}

?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<select name="style">
<option>Standard</option>
<option>Style1</option>
<option>Style2</option>
</select>
<br />
<input type="submit" value="go" />
</form>Keine Sorge, du bist nicht das einzige Opfer von register_globals = On (http://adventures.mania-network.de/zake/zake.php?site=register_globals).
Warum man <?=$variable?> nicht verwenden sollte steht bei So ist es richtig! (http://adventures.mania-network.de/zake/zake.php?site=right).

Sebastian
04.09.2004, 20:37
*donk* Ich wusste doch da war noch was. ^^''
Jedenfalls ein großes Dank, jetzt geht es richtig und ist sogar sicher. *g*

mitaki
04.09.2004, 20:42
Ach ja, da gab es noch das hier:
Gecko Browser und Opera kennen diese Angaben:
<link rel="stylesheet" type="text/css" href="standard.css" title="standard" />
<link rel="alternate stylesheet" type="text/css" href="zwei.css" title="auswahl1" />
<link rel="alternate stylesheet" type="text/css" href="drei.css" title="auswahl2" />Der Internet Explorer kann das nicht, wie das Aussieht kannst du ja auf meiner Seite sehen.