Ergebnis 1 bis 4 von 4

Thema: PHP-Script um eine CSS-Datei auszuwählen geht nihcht

  1. #1

    PHP-Script um eine CSS-Datei auszuwählen geht nihcht

    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:
    PHP-Code:
    // 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:
    HTML-Code:
    <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?

  2. #2
    Wahrscheinlich... versuch das:
    PHP-Code:
    <?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.
    Warum man <?=$variable?> nicht verwenden sollte steht bei So ist es richtig!.

    Geändert von mitaki (04.09.2004 um 19:35 Uhr)

  3. #3
    *donk* Ich wusste doch da war noch was. ^^''
    Jedenfalls ein großes Dank, jetzt geht es richtig und ist sogar sicher. *g*

  4. #4
    Ach ja, da gab es noch das hier:
    Gecko Browser und Opera kennen diese Angaben:
    HTML-Code:
    <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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •