CirTap: Code wird in XHTML Mode nicht ausgeführt

Beitrag lesen

Hi,

wie kommst du auf das schmale Brett, da
<script type="text/php">
einzufügen?
Ging die Datei durch "Tidy" oder so? Das <script> Element wird zwar von einigen PHP-Konfigs mit unterstützt, dürfte aber wohl die eigentliche Ursache deines Problems sein. Jedenfalls hat das nix mit XHTML zu tun, es sein denn du hast die Dateiendung geändert?
Die sollte natürlich bei .php (.php4 etc.) bleiben, egal was für ein [X]HTML der Script letzlich ausspuckt.

Tausch das mal alles in "normale" PHP-Tags, dann sollte es auch keine Probs mit dem "verschachtelten" <script> für deine JavaScripte geben -- in denen, wie schon bemerkt wurde, sowieso das type-Attribut fehlt.

<?php
  var $standardlayout = "gold"; //Standardlayout, das beim Besuchen ohne Cookie geöffnet wird
  if(isset($newlayout) and isset($origin)) echo "
  <script type='JavaScript' lang='text/javascript'>
  document.cookie = '" + $newlayout + "';
  window.location.replace('sites/" + $origin + "?layout=layout_' + document.cookie);
  </script>";
  //Diese Seite mit ?newlayout=LAYOUTNAME öffnen bringt ein anderes Layout

echo "
  <script type='JavaScript' lang='text/javascript'>
  function loadpage() {
    if(!document.cookie) {
      window.location.replace('sites/home.php?layout=layout_' + document.cookie);
    }
    else {
     window.location.replace('sites/home.php?layout=layout_" + $standardlayout + "');
    }
  }
  </script>
  ";
?>

So, und wenn du schon 'nen Cookie für Layout-Wechselkram nehmen willst, dann kannst du das auch gleich (sicherer) auf PHP-Ebene machen, statt hier "unnötiges" JavaScript mit ins Spiel zu bringen.
Siehe: $_COOKIE, setcookie() und header("Location: andere URL") für den Redirect in der PHP-Doku.
Der Code dazu *MUSS* dann aber ganz am Anfang, noch *VOR* dem <DOCTYPE..> stehen, sonst klappt dat nich!

Viel Spaß,
CirTap