Le0: XHTML und IE

Hallo.

Hab mal folgende Probleme/Fragen:

Wie kriege ich den IE dazu, XHTML-Dateien auch als solche zu parsen, sprich, Fehler in der Syntax anzuzeigen. In SelfHTML steht, das man dazu CSS verwenden soll, bringt aber irgendwie nix, entweder er bringt mir die XML-Strukturansicht oder er sieht sie als normale HTML-Datei an. Die Angaben im Dateikopf sind alle XHTML-konform vorhanden, die Dateiendung ist aber php (und soll auch so bleiben). Hab auch schon den Content-type im Header umgestellt, ohne gewünschtes Ergebnis.
Das zweite ist, warum zeigt mir der IE nen Fehler bei folgendem Link:
<a href="http://xyz.com/script.php?var1=x&var2=y">blabla</a>
Er scheint nen Problem mit dem & und dem fehlenden Semikolon zu haben, aber wie soll ich sonst die zweite Variable übergeben???

Vielen Dank,
Le0

  1. Hallo,

    Wie kriege ich den IE dazu, XHTML-Dateien auch als solche zu parsen, sprich, Fehler in der Syntax anzuzeigen. In SelfHTML steht, das man dazu CSS verwenden soll, bringt aber irgendwie nix, entweder er bringt mir die XML-Strukturansicht oder er sieht sie als normale HTML-Datei an. Die Angaben im Dateikopf sind alle XHTML-konform vorhanden, die Dateiendung ist aber php (und soll auch so bleiben). Hab auch schon den Content-type im Header umgestellt, ohne gewünschtes Ergebnis.
    Das zweite ist, warum zeigt mir der IE nen Fehler bei folgendem Link:
    <a href="http://xyz.com/script.php?var1=x&var2=y">blabla</a>
    Er scheint nen Problem mit dem & und dem fehlenden Semikolon zu haben, aber wie soll ich sonst die zweite Variable übergeben???

    Zu 2 kann ich dir helfen, zu 1 sind meine Kenntnisse zu gering:
    Maskiere dein & mit & dann müsste es klappen.

    Gruß

    Kurt

    --
    "Mut ist eine Tugend, doch Angst beweist Vernunft, Bewusstsein und Phantasie. Die Kunst ist es abzuwägen."
    http://faq.united-web.at
    http://elektro-dunzinger.at
    http://shop.elektro-dunzinger.at
  2. Moin!

    <a href="http://xyz.com/script.php?var1=x&var2=y">blabla</a>

    Du musst das Entity schreiben:
    <a href="http://xyz.com/script.php?var1=x&var2=y">blabla</a>

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Meinereinerselbst ist auf der Suche nach Aufträgen
  3. Hallo,

    Hab mal folgende Probleme/Fragen:

    Wie kriege ich den IE dazu, XHTML-Dateien auch als solche zu parsen, sprich, Fehler in der Syntax anzuzeigen. [...] entweder er bringt mir die XML-Strukturansicht

    Dann interpretiert er deine Datei als XML und prüft sie gleich auf Wohlgeformtheit bzw. wenn du die DTD richtig angegeben hast, auf Gültigkeit. Wenn du keine Fehler in der Datei hast, bekommst du das gesamte Dokument in dieser Ansicht.
    Bei Fehler wird der Fehler an der Stelle angezeigt wo er auftritt.

    »»oder er sieht sie als normale HTML-Datei an.

    Dann interpretiert der IE die Date als HTML (z.B. der Server liefert es als text/html aus)

    »»Die Angaben im Dateikopf sind alle XHTML-konform vorhanden, die Dateiendung ist aber php (und soll auch so bleiben).

    Dann kannst du es vergessen, es sei denn du schraubst an den Einstellungen deines Servers um, dass er die Dateien mit der entsprechenden MIME-Type ausliefert (was bei php vielleicht doch zu problemen führt, wenn diese Datei noch durch den PHP Interpreter laufen muss.

    Grüße
    Thomas

    1. Hallo,

      hab ich schon ausprobiert. Mit header("Content-type: text/xml") stellt er aber auch nur die Struktur dar (application/xml dasselbe).
      Das sind die beiden möglichen Mime-Typen für XHTML (laut SelfHTML).
      Wie gesagt: entweder er parst XML und ich krieg Struktur oder als HTML (ohne Syntaxprüfung) und seh die Seite wie ich sie will. Nur XHTML (also Prüfung und Anzeige der XHTML-Seite falls fehlerfrei) macht er nicht (bzw. ich mach was falsch und hab keinen Plan was).
      Ist vielleicht der Content-type falsch?

      Danke,
      Le0

      1. Hallo Leo,

        Das sind die beiden möglichen Mime-Typen für XHTML (laut SelfHTML).

        Das W3C empfiehlt application/xml+xhtml und text/html aus
        Kompabilitätsgründen. Im Archiv steht noch mehr dazu, recherchiere
        nach Postings von solchen deutschen Kapazitäten in diesem obskuren
        Wissensbereich wie molily, Michael Jendryschik, eventuell auch
        Bjoern Hoehrmann.

        Tim

  4. Hallo,

    Wie kriege ich den IE dazu, XHTML-Dateien auch als solche zu parsen, sprich, Fehler in der Syntax anzuzeigen.

    Gar nicht. Keine IE-Version kann mit den empfohlenen MIME-Types etwas anfangen.

    In SelfHTML steht, das man dazu CSS verwenden soll,

    Wo steht das denn?

    bringt aber irgendwie nix, entweder er bringt mir die XML-Strukturansicht oder er sieht sie als normale HTML-Datei an. Die Angaben im Dateikopf sind alle XHTML-konform vorhanden, die Dateiendung ist aber php (und soll auch so bleiben). Hab auch schon den Content-type im Header umgestellt, ohne gewünschtes Ergebnis.

    Du wirst im Archiv diverse Threads zum Thema finden, wie XHTML-Dokumente aufgeliefert werden sollten. Ich ziehe die Lösung vor, zu Beginn jedes Dokuments folgendes PHP zu inkludieren:

    <?php
      if (preg_match('|application/xhtml+xml(?!\s*;\s*q=0)|', $_SERVER['HTTP_ACCEPT'])) {
        header('Content-Type: application/xhtml+xml; charset=iso-8859-1');
      } else {
        header('Content-Type: text/html; charset=iso-8859-1');
      }
      ?>

    Damit enthält jeder mir bekannte Benutzeragent den MIME-Type, den er versteht. Aktuelle Geckos zum Beispiel stellen XHTML-Dokumente dann als XHTML dar. Probier's aus.

    Das zweite ist, warum zeigt mir der IE nen Fehler bei folgendem Link:
    <a href="http://xyz.com/script.php?var1=x&var2=y">blabla</a>
    Er scheint nen Problem mit dem & und dem fehlenden Semikolon zu haben, aber wie soll ich sonst die zweite Variable übergeben???

    '&' ist dein Freund.

    Gruß,

    MI

    --
    XFrames Working Draft (Deutsche Übersetzung) : http://jendryschik.de/TR/xframes/
    Die Wissensgesellschaft : http://jendryschik.de/michael/inf/wissensgesellschaft/
    Einführung in XHTML, CSS und Webdesign: http://jendryschik.de/wsdev/einfuehrung/
    Feste Positionierung, richtig angewandt : http://jendryschik.de/wsdev/css/fixed/
    sh:( fo:) rl:( br:& br:] ' n4:& | n4:? ' ie:| va:) de:] zu:) fl:{ ss:| ls:& js:|
    1. Hallo,

      <?php
        if (preg_match('|application/xhtml+xml(?!\s*;\s*q=0)|', $_SERVER['HTTP_ACCEPT'])) {
          header('Content-Type: application/xhtml+xml; charset=iso-8859-1');
        } else {
          header('Content-Type: text/html; charset=iso-8859-1');
        }
        ?>

      Außerhalb einer HTTP-Umgebung werden Dokumente ohne XML-Deklaration mit passender encoding-Angabe im Fall application/xhtml+xml aufgrund der ISO-8859-1-kodierten Zeichen fehlinterpretiert. Wenn application/xhtml+xml, dann auch eine XML-Deklaration; das bedingte Einfügen sollte an gleicher Stelle möglich sein.
      Den Fall text/html und fehlende Kodierungsangabe via meta-Element hatten wir bereits besprochen, ich halte das auch nicht für hinreichend sicher und würde es nicht empfehlen.
      In beiden Fällen verlässt man sich ausschließlich auf das Herumraten und die Fehlerkorrektur der Browser.

      Mathias

      1. Hallo,

        <?php
          if (preg_match('|application/xhtml+xml(?!\s*;\s*q=0)|', $_SERVER['HTTP_ACCEPT'])) {
            header('Content-Type: application/xhtml+xml; charset=iso-8859-1');
          } else {
            header('Content-Type: text/html; charset=iso-8859-1');
          }
          ?>

        Außerhalb einer HTTP-Umgebung werden Dokumente ohne XML-Deklaration mit passender encoding-Angabe im Fall application/xhtml+xml aufgrund der ISO-8859-1-kodierten Zeichen fehlinterpretiert.

        Außerhalb einer HTTP-Umgebung würde ich Dokumente auch nicht als 'application/xhtml+xml' ausliefern, und darüber hinaus würde PHP außerhalb einer HTTP-Umgebung auch nicht wirklich funktionieren.

        Gruß,

        MI

        --
        XFrames Working Draft (Deutsche Übersetzung) : http://jendryschik.de/TR/xframes/
        Die Wissensgesellschaft : http://jendryschik.de/michael/inf/wissensgesellschaft/
        Einführung in XHTML, CSS und Webdesign: http://jendryschik.de/wsdev/einfuehrung/
        Feste Positionierung, richtig angewandt : http://jendryschik.de/wsdev/css/fixed/
        sh:( fo:) rl:( br:& br:] ' n4:& | n4:? ' ie:| va:) de:] zu:) fl:{ ss:| ls:& js:|
        1. Hallo,

          Außerhalb einer HTTP-Umgebung werden Dokumente ohne XML-Deklaration mit passender encoding-Angabe im Fall application/xhtml+xml aufgrund der ISO-8859-1-kodierten Zeichen fehlinterpretiert.

          Außerhalb einer HTTP-Umgebung würde ich Dokumente auch nicht als 'application/xhtml+xml' ausliefern, und darüber hinaus würde PHP außerhalb einer HTTP-Umgebung auch nicht wirklich funktionieren.

          Das Szenario, was ich beschrieb, war das Überführen der über HTTP bezogenen in ein Dateisystem, sei es durch direktes Speichern im Browser oder automatisiertes Herunterladen zusammenhängender Dokumente. Wenn diese Clients application/xhtml+xml im Accept-Header tragen, werden sie das Dokument als solches erhalten und als solches Abspeichern, in der Regel mit der Endung .xhtml. Wenn das Dokument daraufhin lokal aufgerufen wird, ist das Zeichenchaos perfekt, da der Browser von UTF-8 ausgeht.
          Wenn sie text/html anfordern, besteht das Risiko wie gesagt unter Umständen auch. Und es lässt sich nicht verhindern, dass ein Dokument lokal gespeichert wird. Daher rate ich, die Kodierung im Dokument anzugeben.

          Dass PHP-Scripte uninterpretiert keinem Browser vorgesetzt werden sollten, ist selbstverständlich, ich sprach natürlich vom Endprodukt.

          Grüße,
          Mathias