Parse Error - und ich verstehe es nicht

Rayvez

Mitglied
Parse error: syntax error, unexpected ';' in /users/rayvez/www/emaster/switch.php on line 11


PHP:
<?php
    $refresh=false;
  if(isset($_POST['styleswitcher'])) {
     if ($_POST['style']=="\"Lime-on-Black\"")
		{$style="emaster.css";
        }
     elseif ($_POST['style']=="\"Black-on-White\"")
	    {$style="bunt.css";
        }
		else {$style="normal.css"; 
      **Zeile 11**  setcookie('style', $style, time()+365*24*3600, "/" ;)
        $refresh=true;
    }
?> 

<form method="post" action="">
 <select name="styles">
   <option name="1">"Lime-on-Black"</option>
   <option name="2">"Black-on-White"</option>
  </select><br />
  <input type="submit" value="Dieses Style verwenden" />
</form>
 
Hi,

aus
PHP:
setcookie('style', $style, time()+365*24*3600, "/" ;)
wird
PHP:
setcookie('style', $style, time()+365*24*3600, "/");
Siehe zum Vergleich die Quelle des Scripts CSS-Styleswitcher mit PHP.

Und das nächste Mal wähle bitte einen aussagekräftigeren Titel für dein Thema als "kurz helfen,bitte", und erläutere mit ein oder zwei Sätzen das Problem, soviel Zeit wird ja wohl noch sein. Vielen Dank.
 
Sers,ok werde es berücksichtigen,aber zum Parse error:

Wenn ich es so mache,wie es auch im Tutorial ist:

Parse error: syntax error, unexpected $end in /users/rayvez/www/emaster/switch.php on line 24

Bei mir wäre Zeile 24 net vorhanden,die Datei(oben gepostet) hat nur 22 Zeilen.
 
PHP:
        else {$style="normal.css"; 
      **Zeile 11**  setcookie('style', $style, time()+365*24*3600, "/" ;)
        $refresh=true;

Hier fehlt auch eine Klammer "}".

//edit: Du solltest dir mal dies hier durchlesen. Da lernst du dann etwas "sauberen" Code zu schreiben...
 
Zuletzt bearbeitet:
So lautet der Original-Code, der keine Fehlermeldung auswirft:

PHP:
<?php
    $refresh=false;
    if(isset($_POST['styleswitcher'])) {
        if ($_POST['style']=="feuer"){
            $style="feuer.css";
        }
        elseif ($_POST['style']=="wasser"){
            $style="wasser.css";
        }
        elseif ($_POST['style']=="erde"){
            $style="erde.css";
        }
        elseif ($_POST['style']=="luft"){
            $style="luft.css";
        }
        else{
            $style=feuer.css;
        }
        setcookie('style', $style, time()+365*24*3600, "/");
        $refresh=true;
    }
?>
<html>
 <head>
  <title>Styleswitcher mit PHP</title>
  <?php
    if($refresh) {
        echo '<meta http-equiv="refresh" content="0; URL='.$_SERVER['PHP_SELF'].'">';
    }
    if(isset($_COOKIE['style'])) {
            echo '<link rel="stylesheet" type="text/css" href="css/'.$_COOKIE['style'].'">';
    }
    else {
        echo '<link rel="stylesheet" type="text/css" href="css/feuer.css">';
    }
  ?>
 </head>
 <body>
  <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="POST">
   <select name="style" size="1">
    <option value="feuer">Feuer-Style</option>
    <option value="wasser">Wasser-Style</option>
    <option value="erde">Erd-Style</option>
    <option value="luft">Unsichtbarer Style</option>
    <option value="kein">Kein Style</option>
   </select><br>
   <input type="submit" name="styleswitcher" value="Switch">
  </form>
  <p>Bitte auf "Switch" klicken!</p>
 </body>
</html>
Das heißt, nach der else-Abfrage in Zeile 10 fehlt bei dir die geschweifte Klammer.
 
Ok,jetzt gehts,nur eine Frage,ich habe momentan nur 2 Styles(kommen noch 3),wieso wechselt der dann nicht das Style,wenn ich dieses befehle?
 
Dann schau mal, was du entgegen dem PHP-Code im select-Element als Namen angegeben hast - style != styles.
 
Das was bei option name="" steht muss doch in den Vergleich rein,oder?

Ich meine sowas:

HTML:
($_POST['style']=="standard"){
            $style="standard.css";
 
Vergleich doch bitte einfach mal den funktionstüchtigen Quellcode mit deiner Variante. Die fehlerhaften Unterschiede wirst du wohl noch erkennen, oder?
 
Zurück