matrix1977: Dateiendung .hmtl .xhtml .php

Hallo allerseits,

ich hab folgendes Problem,
wenn ich eine Datei beginnend mit:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

<head>
  <meta http-equiv="Content-type" content="application/xhtml+xml; charset=UTF-8" />
  <title>bla bla</title>
  <link rel="StyleSheet" href="teststyle_float.css" type="text/css" media="screen" />
 </head>

<body>
                blabla

als .html Datei speicher, dann wird sie vom Firefox 0.8 nicht korrekt angezeigt (die Floats für die Boxen aus dem CSS2 Box-Modell funktionieren nicht), ausserdem interessiert es auch herzlich wenig, ob ich xhtml-konform schreibe, zum Beispiel erzeugt <br> keinen Fehler obwohl es <br /> sein muss ! Speicher ich die Datei jedoch als .xhtml Datei, wird sie korrekt vom Browser angezeigt, die CSS2 Elemente funktionieren einwandfrei und nun gibts auch Fehler vom XML-Parser, wenn er nicht geschlossene Tags findet. Nun kann es mir eigentlich egal sein, ob meine Datei .html oder .xhtml heißt, problematisch wird's aber, wenn ich php-Code einbauen möchte und die Datei dann zu .php umbenannt wird, denn dann habe ich dasselbe, nicht funktionierende Ergebnis wie mit der .html Endung.
Dabei habe ich in mehreren Foren gelesen, dass die Dateiendung prinzipiell egal ist, da im DOCTYPE definiert ist, dass es sich um ein xhtml File handelt. Wieso funktioniert das dann aber nicht mit Dateiendungen ungleich .xhtml ?

Gruß
matrix1977

  1. wenn ich eine Datei [...] als .html Datei speicher, dann wird sie vom Firefox 0.8 nicht korrekt angezeigt (die Floats für die Boxen aus dem CSS2 Box-Modell funktionieren nicht), ausserdem interessiert es auch herzlich wenig, ob ich xhtml-konform schreibe, zum Beispiel erzeugt <br> keinen Fehler obwohl es <br /> sein muss ! Speicher ich die Datei jedoch als .xhtml Datei, wird sie korrekt vom Browser angezeigt, die CSS2 Elemente funktionieren einwandfrei und nun gibts auch Fehler vom XML-Parser, wenn er nicht geschlossene Tags findet.

    Öffnest du das Dokument lokal, oder lässt du es von einem WebServer ausliefern?
    Falls ersteres, dürfte es wohl tatsächlich ein Bug sein..
    Falls letzteres, könnte allerdings auch der WebServer daran schuld sein. Im Konfliktfall bevorzugt Firebird den im HTTP-Header angegebenen MIME-Typ gegenüber den im Dokument angegebenem.. Wenn dein Webserver jetzt den MIME-Typ anhand der Dateiendung bestimmt, haben wir den Schlamassel. :)

    Eigtl. sollten Webserver den im meta-Tag angegebenen MIME-Typ übernehmen.. Scheinbar tun das nicht alle.

    »»Nun kann es mir eigentlich egal sein, ob meine Datei .html oder .xhtml heißt, problematisch wird's aber, wenn ich php-Code einbauen möchte und die Datei dann zu .php umbenannt wird, denn dann habe ich dasselbe, nicht funktionierende Ergebnis wie mit der .html Endung.

    header("Content-type: application/xhtml+xml; charset=UTF-8");

    Gruß
    matrix1977

    Grüße aus Niederösterreich,

    • Manuel
    1. hi,
      wenn ich ganz am Anfang der php-Datei
      header("Content-type: application/xhtml+xml; charset=UTF-8");
      einfüge, dann kommt folgenden Fehlermeldung:

      Warning: Cannot modify header information - headers already sent by (output started at /test_float.php:1) in /test_float.php on line 2

      Die php-Datei sieht so aus:

      <?php
      header("Content-type: application/xhtml+xml; charset=UTF-8");
      print "<?xml version="1.0" encoding="UTF-8"?>\n";
      ?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

      <head>
        <meta http-equiv="Content-type" content="application/xhtml+xml; charset=UTF-8" />
        <title>bla bla</title>
        <link rel="StyleSheet" href="teststyle_float.css" type="text/css" media="screen" >
       </head>

      <body>

      1. hm.. kann ich nicht ganz nachvollziehen.

        es gibt allerdings für header() einige Einschränkungen, vlt. hast du ja eine davon nicht eingehalten?

        Eine wäre z.B.

        Beachten Sie, dass header() aufgerufen werden muss, bevor eine Ausgabe gesendet wurde, egal ob normale HTML Tags, leere Zeilen in einer Datei oder von PHP. Ein weit verbreiteter Fehler ist mittels include(), require(), oder anderen Dateizugriffsmethoden Code zu lesen, und so unbewusst Leerzeichen oder Leerzeilen auszugeben, bevor header() aufgerufen wird. Das gleiche Problem besteht auch bei Verwendung einer einzigen PHP/HTML Datei.

        http://at.php.net/manual/de/function.header.php

    2. Hallo,

      Eigtl. sollten Webserver den im meta-Tag angegebenen MIME-Typ übernehmen.. Scheinbar tun das nicht alle.

      Welche tun das überhaupt und mit welcher Einstellung?

      header("Content-type: application/xhtml+xml; charset=UTF-8");

      Das mag Firefox zufriedenstellen, aber es sperrt gleichzeitig die Mehrheit der Surfer aus, weil andere Browser diesen Inhaltstyp nicht verstehen bzw. korrekt mit dem Inhalt umgehen.

      Mathias

      1. Eigtl. sollten Webserver den im meta-Tag angegebenen MIME-Typ übernehmen.. Scheinbar tun das nicht alle.

        Welche tun das überhaupt und mit welcher Einstellung?

        Sorry, k. A.
        Bin selbst nur durch Zufall über die Information gestoßen; hatte ein Problem ganz ähnlich dem des Threaderstellers.

        header("Content-type: application/xhtml+xml; charset=UTF-8");

        Das mag Firefox zufriedenstellen, aber es sperrt gleichzeitig die Mehrheit der Surfer aus, weil andere Browser diesen Inhaltstyp nicht verstehen bzw. korrekt mit dem Inhalt umgehen.

        Selbst schuld, wer nen veralteten Browser einsetzt.
        Aber gut das du es erwähnt hast, falls der Threadersteller nicht meine Auffassung teilt wird ihn das sicher interessieren. :)

  2. Hallo,

    <meta http-equiv="Content-type" content="application/xhtml+xml; charset=UTF-8" />

    Die charset-Angabe in diesem meta-Element wird nur dann von Browsern zur Bestimmung der Kodierung verwendet, wenn die Seite als text/html ausgeliefert wird. Und dann ist die Angabe application/xhtml+xml widersprüchlich. Daher ist die Angabe des Inhaltstyps application/xhtml+xml in einem meta-Element wenig sinnvoll.

    als .html Datei speicher, dann wird sie vom Firefox 0.8 nicht korrekt angezeigt (die Floats für die Boxen aus dem CSS2 Box-Modell funktionieren nicht)

    Zur Lösung deines Problems wäre es relevanter, dass du die Seite zeigst, damit die Ursache dieses Verhaltens gefunden werden kann. Firefox rendert immer nach dem CSS2-Boxmodell und sollte diesbezüglich keine Unterschiede zwischen XHTML 1.0 Strict als text/html und XHTML 1.0 Strict als application/xhtml+xml an den Tag legen.

    Speicher ich die Datei jedoch als .xhtml Datei, wird sie korrekt vom Browser angezeigt, die CSS2 Elemente funktionieren einwandfrei

    Hast du untersucht, woran dieser Unterschied genau liegt? Bitte zeige einmal die gesamte Seite.

    Mathias

    1. Hallo Mathias

      Ich habe alle 4 Variationen durchprobiert:
      XHTML 1.0 Strict als text/html -> Datei gespeichert mit .html
      XHTML 1.0 Strict als text/html -> Datei gespeichert mit .xhtml
      XHTML 1.0 Strict als application/xhtml+xml -> Datei gespeichert mit .html
      XHTML 1.0 Strict als application/xhtml+xml -> Datei gespeichert mit .xhtml

      Firefox und Opera interpretieren die Datei nur dann richtig, wenn sie die Endung .xhtml trägt (egal ob als text/html oder application/xhtml+xml). Bei der Endung .html werden die Floats für das Box-Modell zerschossen, und, was noch viel schlimmer ist, der XML-Parser läuft überhaupt nicht, denn nicht geschlossene Tags lassen die beiden Browser völlig kalt, und das sowohl lokal auf meiner Kiste wie auch bei meinem Webhoster netclusive.
      Mit der Dateiendung .xhtml funktioniert alles einwandfrei, auch der XML-Parser beschwert sich dann über nicht geschlossene Tags, wiederum sowohl bei mir lokal als auch bei meinem Webhoster.

      Das kann doch eigentlich nicht sein oder ?? Was mach ich denn die ganze Zeit falsch ? Die Dateiendung sollte doch schnuppe sein, wenn meine Datei folgendermaßen anfängt:
      <!DOCTYPE html
       PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

      <head>
        <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
        <title>blabla</title>
        <link rel="StyleSheet" href="teststyle_float.css" type="text/css" media="screen" />
       </head>

      Wenn man die CSS2 Geschichte erst einmal vergißt, zumindest der XML-Parser sollte diese Datei doch interpretieren und sich auch beschweren, wenn zum Beispiel bei <link rel=.... das "/" Zeichen am Ende fehlt, tut er aber nicht, wenn die Dateiendung .html ist ! Warum ?

      1. hi,

        Ich habe alle 4 Variationen durchprobiert:

        das beantwortet immer noch nicht die frage, ob du den content-type von deinem webserver im HTTP-header ausliefern lässt, oder ob du dich nur auf die angabe im meta-tag verlässt.

        gruss,
        wahsaga

        1. hi,

          Ich habe alle 4 Variationen durchprobiert:

          das beantwortet immer noch nicht die frage, ob du den content-type von deinem webserver im HTTP-header ausliefern lässt, oder ob du dich nur auf die angabe im meta-tag verlässt.

          ich verlass mich auf's meta-tag.
          ich nutz einen WebServer bei einem Webhoster, nicht bei mir privat, wie kann ich den content-type des http-headers ermitteln von meinem Webhoster ?
          Vielleicht mit einem php-Script mit headers_sent() ?
          Wie kann ich überhaupt Einfluss darauf nehmen oder es umgehen, sollte mir der content-type nicht passen ?

          Gruß
          matrix1977

          1. da fällt mir ein,
            was passiert denn genau, wenn kein WebServer läuft ?
            Also wenn ich die Dateien bei mir lokal öffne, dann nicht über den Aufruf über einen bei mir lokal laufenden Webserver sondern einfach nur durch Doppelklick auf die html bzw. xhtml Datei. Da wird doch dann überhaupt kein http-header übertragen oder ?

            Gruß
            matrix1977

            1. Hallo,

              was passiert denn genau, wenn kein WebServer läuft ?

              Dann liest der Browser die Datei, so wie sie ist, ein.

              PHP-Code bleibt ungeparst.

              Der Browser schaut _vielleicht_, ob es ein Meta-Tag
              mit Content-Type und/oder Charset-Angabe hat.

              Oder er versucht zu raten.
              Raten ist sowieso sehr beliebt beim MS IE,
              auch bei Dokumenten, die ueber HTTP kommen:
              http://ppewww.ph.gla.ac.uk/~flavell/www/content-type.html

              Da wird doch dann überhaupt kein http-header übertragen oder ?

              Genau.
              Und es wird auch kein PHP-Code ausgefuehrt...
              (vgl. 1. Posting und Thema des Threads)

              Gruesse,

              Thomas

              --
              Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
              Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
              Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
              1. Ok, ich hab mal meine Dateien auf dem Webserver mit dem Link
                http://cgi.w3.org/cgi-bin/headers
                getestet.
                Heraus gekommen ist folgendes, der mime-typ in meinem meta-tag wird einfach ignoriert. Ist es nämlich eine .html datei, die ich aufrufe, ist der content-type im http-header "text/html" laut der HTTP HEAD Service Seite. Ist die Dateiendung aber xhtml, ist der content-type "application/xhtml+xml". In beiden Fällen hatte ich in meinem meta-tag aber "text/html" stehen.
                Nun wird aber meine Seite nur dann richtig interpretiert (nicht geschlossene Tags führen zu Fehler des XML-Parsers zum Beispiel) wenn der content-type "application/xhtml+xml" ist, ist der content-type nur "text/html", stören nicht-xhtml konforme Ausdrücke nicht, wie zum Beispiel die nicht geschlossenen Tags. Wie krieg ich jetzt den content-type "application/xhtml+xml" im http-header hin ohne die Endung xhtml nutzen zu müssen, sondern zum Beispiel mit der Endung .html oder .php ?

                1. Hallo,

                  Heraus gekommen ist folgendes, der mime-typ in meinem meta-tag wird einfach ignoriert.

                  Das erstaunt mich ueberhaupt nicht.

                  Ich weiss nicht, warum die Leute so geil sind auf Meta-Tags,
                  wenn es offensichtlich um Dinge geht, fuer die eigentlich
                  der Server zustaendig ist (HTTP-Header).

                  Und ich fragte mich, woher der (Aber)Glaube kommt, dass Meta-Tags
                  das Verhalten eines Webservers beeinflussen koennten...

                  Ich habe mich also auf die Suche gemacht und wieder
                  mal etwas dazu gelernt...

                  1. Beschreibung von META in HTML 3.2
                  http://www.w3.org/TR/REC-html32#meta
                     "HTTP servers may use the property name specified
                     by the HTTP-EQUIV attribute to create an
                     RFC 822 style header in the HTTP response"

                  2. Beschreibung von META in HTML 4.01
                  http://www.w3.org/TR/html401/struct/global.html#edef-META
                    "HTTP servers may use the property name specified
                     by the http-equiv attribute to create an
                     RFC822-style header in the HTTP response."
                  http://www.w3.org/TR/html401/struct/global.html#adef-http-equiv
                    "http-equiv
                     This attribute may be used in place of the name attribute.
                     HTTP servers use this attribute to gather information for
                     HTTP response message headers."
                  Das klingt, als ob alle Webserver das auch wirklich taeten.
                  Aber es steht AFAIK nirgends, dass sie es tun _muessen_ oder auch
                  nur _sollten_.

                  3. XHTML 1.0 Spec., Appendix C.9
                  http://www.w3.org/TR/xhtml1/#C_9
                    "Note: be aware that if a document must include the character
                     encoding declaration in a meta http-equiv statement, that
                     document may always be interpreted by HTTP servers and/or
                     user agents as being of the internet media type defined
                     in that statement."

                  Ich fand also keine offizielle Stelle, die sagt,
                  dass ein HTTP-Server die Meta-Tags in HTML-Dateien
                  beachten _muss_ (MUST) oder auch nur _sollte_ (SHOULD).
                  Stets ist nur die Rede von _kann/darf_ (MAY).

                  (In den zitierten Texten sind die Woerter _nicht_
                  grossgeschrieben, aber in den Einleitungen von
                  HTML 4.01 und XHTML 1.0 steht, dass sie trotzdem
                  gemaess RFC 2119 oder sinngemaess gemeint sind.)

                  In zahlreichen Aussagen zu Meta-Tags in SelfHTML
                  klingt es so, als ob man damit tatsaechlich das
                  Verhalten von vielen Webservern steuern koenne,
                  wobei das auch gleich wieder relativiert wird:
                  http://selfhtml.teamone.de/html/kopfdaten/meta.htm#allgemeines
                     "Als Autor der HTML-Datei können Sie auf diese Weise also
                      die Kommunikation zwischen Web-Server und Web-Browser
                      beeinflussen. Inwieweit Angaben dieser Art etwas bewirken,
                      hängt also vom Web-Server ab bzw. davon, ob er diese Daten
                      vor dem Übertragen der Datei an den Browser ausliest oder nicht."

                  Gemaess meinen Tests ignoriert zumindest der (weit verbreitete)
                  Apache 1.3.x die Meta-Tags (z.B. das Beispiel aus der
                  HTML 4.01 Specification), d.h. er macht daraus keine
                  HTTP-Header.

                  Es nimmt mich wunder, ob ueberhaupt ein real existierender
                  Webserver wirklich in die HTML-Dateien reinguckt und aus
                  den Meta-Tags HTTP-Header macht.

                  Ist es nämlich eine .html datei, die ich aufrufe, ist der content-type im http-header "text/html" laut der HTTP HEAD Service Seite. Ist die Dateiendung aber xhtml, ist der content-type "application/xhtml+xml".

                  Das liegt vermutlich an der Server-Konfiguration.

                  In beiden Fällen hatte ich in meinem meta-tag aber "text/html" stehen.

                  IMHO irrelevant.

                  Nun wird aber meine Seite nur dann richtig interpretiert (nicht geschlossene Tags führen zu Fehler des XML-Parsers zum Beispiel) wenn der content-type "application/xhtml+xml" ist,

                  Ob das "richtig" ist, sei mal dahingestellt.

                  _Du_ moechtest, dass Dein XHTML "streng" behandelt wird.

                  Und dass der MS IE es zum Download anbietet, statt
                  das Dokument anzuzeigen...

                  Zur Frage, mit welchem Content-Type man XHTML ausliefern sollte,
                  stehen ein paar Links im bereits genannten Thread: [pref:t=77771&m=449928]

                  ist der content-type nur "text/html", stören nicht-xhtml konforme Ausdrücke nicht, wie zum Beispiel die nicht geschlossenen Tags.

                  text/html wird von den Browsern als Tag-Soup interpretiert
                  und dementsprechend versuchen sie, moeglichst viele Fehler
                  zu tolerieren...

                  Wie krieg ich jetzt den content-type "application/xhtml+xml" im http-header hin ohne die Endung xhtml nutzen zu müssen, sondern zum Beispiel mit der Endung .html oder .php ?

                  Das schrieb ich doch schon in [pref:t=77822&m=450035]

                  RTFM.
                  Wenn es ein Apache ist, kannst Du meist mit AddType in der
                  .htaccess den MIME-Type bestimmen.

                  http://httpd.apache.org/docs/mod/mod_mime.html#addtype
                  http://httpd.apache.org/docs-2.0/mod/mod_mime.html#addtype

                  Wenn Du endlich die URL oder wenigstens den
                  Server-Typ verraten wuerdest, muessten wir
                  weniger glaskugeln...

                  Gruesse,

                  Thomas

                  1. Also erstmal vielen Dank für Eure bisherige Hilfe !!
                    Nun, irgendwie versteh ich das wohl nicht recht, kann ich die .htaccess Datei denn editieren von meinem Webhoster ? Ich denke eher nicht.

                    Also hier nun die Adresse:
                    http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float.xhtml
                    http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float.html

                    Beide Dateien sind bis auf ihre Extension 100% identisch.
                    Bei der einen (xhtml) sieht alles korrekt im Firefox/Opera aus, bei der anderen (html) kriegt er das mit den Floats nicht mehr gebacken, offene Tags stören ihn auch nicht. Der MIME-Typ ist halt der falsche ... doch ohne Zugriff auf die .htaccess Datei hab ich wohl keine Chance oder ?

                    Gruß
                    matrix1977

                  2. Ok, ich habe jetzt eine .htaccess Datei angelegt mit
                    Addtype application/xhtml+xml .html

                    Und tatsächlich scheint jetzt auch der richtige MIME-Type anzukommen, jedenfalls sagt mir das die HTTP HEAD Service Seite, doch dem Browser scheint es nach wie vor egal zu sein, der stellt die Seite trotzdem nicht korrekt da

                    1. ES FUNKTIONIERT !!
                      Nochmals vielen Dank an alle
                      Die Browser bekommen nun den richtigen Mime-Type im HTTP-Header.
                      Kann ich das meta-tag nun völlig weglassen ?

                      Gruß
                      matrix1977

                      1. Es funktioniert leider doch nicht ganz.
                        Ich hab in die htaccess Datei folgendes eingetragen

                        Addtype application/xhtml+xml .html .htm .php

                        Nun kommt immer der korrekte MIME-Type an, allerdings werden jetzt .php Dateien nicht mehr vom PHP-Parser interpretiert, sondern kommen unverändert beim Browser an. Der XML-Parser kann natürlich mit PHP-Elementen nix anfangen und gibt ne Fehlermeldung raus. Nehme ich aus dem Addtype-Command .php wieder raus, funzt der PHP-Parser wieder, aber der falsche MIME-Type kommt wieder an -> der XML-Parser läuft nicht.
                        Man, ist es denn wirklich so schwer ???
                        Kann da vielleicht nochmal jemand was zu sagen ?

                        Gruß
                        matrix1977

                        1. Hallo,

                          Ich hab in die htaccess Datei folgendes eingetragen
                          Addtype application/xhtml+xml .html .htm .php

                          Nun kommt immer der korrekte MIME-Type an, allerdings werden jetzt .php Dateien nicht mehr vom PHP-Parser interpretiert, sondern kommen unverändert beim Browser an.

                          Das ist normal.

                          In der httpd.conf (Konfigurations-Datei fuer den Apache-Webserver)
                          steht vermutlich etwa folgendes:

                          AddType application/x-httpd-php .php

                          Damit weiss der Webserver, dass er Dateien mit der Endigung .php
                          durch den PHP-Parser schicken soll.

                          Jetzt sagst Du dem Webserver auf Verzeichnis-Ebene mit Deiner AddType Direktive
                          (s. oben), dass er Dateien mit den Endigungen .html, .htm und .php direkt ausliefern
                          soll, und zwar mit dem Content-Type application/xhtml+xml.

                          Somit werden diese Dateien nicht mehr durch den PHP-Parser geschickt.

                          [...] Nehme ich aus dem Addtype-Command .php wieder raus, funzt der PHP-Parser wieder, aber der falsche MIME-Type kommt wieder an -> der XML-Parser läuft nicht.

                          Auch das ist fuer mich voellig logisch. Ich schrieb doch schon in [pref:t=77822&m=450035]:

                          PHP-Skripten schicken normalerweise text/html,
                          es sei denn, Du schickst im Skript ausdruecklich
                          einen anderen Header.

                          Welchen Content-Type ein PHP-Skript normalerweise schickt, haengt
                          von der Einstellung der Konfigurations-Option default_mimetype ab.
                          Deren Standard-Wert ist SAPI_DEFAULT_MIMETYPE.
                          Ich vermutet, dass das bedeutet, dass PHP sich beim Webserver
                          nach dem Standard-MIME-Type "erkundigt" und diesen uebernimmt.
                          phpinfo() zeigt Dir an, welchen Wert default_mimetype bei Dir hat.

                          default_mimetype ist aenderbar in PHP_INI_ALL, also z.B. auch
                          in der .htaccess oder im Skript selbst per ini_set().
                          http://www.php.net/manual/de/function.ini-set.php

                          Um fuer alle PHP-Skripts eines Verzeichnisses zu bewirken,
                          dass deren Ausgabe mit dem Content-Type application/xhtml+xml
                          ausgeliefert wird, kannst Du es mit folgendem Eintrag in der
                          .htaccess versuchen (nicht ausprobiert, ohne Gewaehr!):

                          php_value default_mimetype "application/xhtml+xml"

                          oder allenfalls

                          <IfModule mod_php4.c> php_value default_mimetype "application/xhtml+xml" </IfModule>

                          Siehe auch:
                          http://www.dclp-faq.de/q/q-konfiguration-laufzeit.html

                          Wenn Du einfach willst, dass die Ausgabe eines einzelnen PHP-Skripts
                          mit dem Content-Type application/xhtml+xml ausgeliefert wird, kannst Du
                          das am einfachsten im Skript selbst veranlassen:

                          header("Content-type: application/xhtml+xml");

                          http://www.php.net/manual/de/function.header.php

                          Gruesse,

                          Thomas

                          1. Hallo, VIELEN DANK, das du mir immer noch hilfst !!!! SUPER !!!
                            Also:
                            Wenn ich die header-Anweisung direkt ins Script mit einbaue, dann schaut es so bei mir aus:

                            <?php
                             header("Content-type: application/xhtml+xml");
                             print "<?xml version="1.0" encoding="UTF-8"?>\n";
                            ?>

                            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

                            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

                            <head>
                            ...

                            das Ganze führt bei mir aber zu folgendem Fehler, wenn ich die php-Datei aufrufe von meinem Webserver:

                            Warning: Cannot modify header information - headers already sent by (output started at /home/www/ncg155/html/matrix1977/Version_3/test_float.php:1) in /home/www/ncg155/html/matrix1977/Version_3/test_float.php on line 2

                            Die Idee, direkt in die .htaccess Datei
                            php_value default_mimetype "application/xhtml+xml" oder
                            <IfModule mod_php4.c> php_value default_mimetype "application/xhtml+xml" </IfModule>
                            reinzuschreiben führt zum totalen Crash :-)

                            Internal Server Error
                            The server encountered an internal error or misconfiguration and was unable to complete your request.

                            Please contact the server administrator, root@phoebe.netclusive.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

                            More information about this error may be available in the server error log.

                            An die PHP_INI_ALL komm ich nicht heran, netclusive (mein Webhoster) lässt mich nicht, jedenfalls nicht, dass ich wüßte.
                            Über phpinfo() sehe ich, dass der default_mime_type text/html ist.
                            Wie würde die Syntax für den ini_set Befehl aussehen ?
                            etwas so ?
                            ini_set("default_mimetype","application/xhtml+xml") ?

                            Gruß
                            matrix1977

                            1. Hallo,

                              Hallo, VIELEN DANK, das du mir immer noch hilfst !!!! SUPER !!!

                              Gerngeschehen. ;-)

                              Warning: Cannot modify header information - headers already sent [...]

                              Vermutlich hast Du ein paar Leerzeichen/-Zeilen, bevor Du den PHP-Bereich oeffnest...
                              http://www.dclp-faq.de/q/q-fehler-header.html

                              Die Idee, direkt in die .htaccess Datei
                              php_value default_mimetype "application/xhtml+xml" oder
                              <IfModule mod_php4.c> php_value default_mimetype "application/xhtml+xml" </IfModule>
                              reinzuschreiben führt zum totalen Crash :-)

                              Internal Server Error

                              Aha. Ich ahnte, dass diese Methode vom Goodwill des
                              Servers bzw. des Webmasters abhaengt... ;-)
                              (Einstellungen von OllowOverride in der httpd.conf)

                              Die Methode der PHP-Konfiguration mit .htaccess ist uebrigens
                              hier dokumentiert:
                              http://www.php.net/manual/de/configuration.changes.php

                              An die PHP_INI_ALL komm ich nicht heran, netclusive (mein Webhoster) lässt mich nicht, jedenfalls nicht, dass ich wüßte.

                              Die Konfigurationsdatei fuer PHP heisst php.ini
                              Die Konfigurationsdatei fuer den Apache heisst httpd.conf
                              An beide kommst Du als Webspace-Mieter normalerweise
                              nicht ran.

                              PHP_INI_ALL in der Spalte "changeable" ("aenderbar") auf
                              http://www.php.net/manual/de/function.ini-set.php
                              heisst gemaess der Erklaerung dort ganz unten, dass man
                              die betreffende Konfigurations-Option ueberall aendern kann,
                              d.h.
                              a) in der php.ini
                              b) in der httpd.conf
                              c) in der .htaccess fuer ein Verzeichnis samt Unterverzeichnissen
                              d) im Skript selbst mit ini_set()

                              a) und b) sind bei gemietetem Webspace fuer den Kunden normalerweise
                              nicht moeglich.

                              Also bleibt c) - was offenbar bei Dir nicht funktioniert.

                              Oder eben d).

                              Wie würde die Syntax für den ini_set Befehl aussehen ?
                              ini_set("default_mimetype","application/xhtml+xml") ?

                              Ja, damit sollte es IMHO klappen.
                              Probier' es einfach mal aus - natuerlich dann ohne zusaetzlichen
                              header() Befehl, aber ebenfalls am Anfang des Skripts, bevor irgend
                              etwas zum Browser geschickt wurde, sonst kommt der Befehl zu spaet.

                              Gruesse,

                              Thomas

                              1. Vermutlich hast Du ein paar Leerzeichen/-Zeilen, bevor Du den PHP-Bereich oeffnest...
                                http://www.dclp-faq.de/q/q-fehler-header.html

                                Nein hab ich nicht, darauf hab ich extra geachtet, dass allererste Zeichen meiner Datei ist "<" (von "<?php") Es steht GANZ am Anfang. Ich versteh das nicht, er kommt mir immer mit der Meldung, dass der Header schon gesendet wurde ...
                                Die ini_set() Methode statt der header Methode funtkioniert auch nicht, er scheint es einfach zu ignorieren.
                                So langsam bin ich echt am verwzeifeln :-(
                                Ich werd mal meinen Webhoster anmailen und mal fragen, ob ich nicht per .htaccess den php default_mimetype ändern darf.

                                Wenn ich nur wüßte, warum die header oder ini_set Methode nicht funktionieren .... kann ich dir vielleicht mal einen Screenshot von meiner php-Datei schicken oder die Datei selbst ? So, wie ich sie auf den Webserver hochgeladen habe.

                                Auch vielen Dank für die ganzen Links. Für mich als Newbie auf diesem Gebiet haben sie einiges Licht ins Dunkle gebracht !

                                Gruß
                                matrix1977

                                1. Hallo,

                                  Vermutlich hast Du ein paar Leerzeichen/-Zeilen, bevor Du den PHP-Bereich oeffnest...
                                  Nein hab ich nicht, darauf hab ich extra geachtet, dass allererste Zeichen meiner Datei ist "<" (von "<?php") Es steht GANZ am Anfang.

                                  Bist Du ganz, ganz sicher?
                                  Manche Editoren bauen am Anfang irgend so ein Zeugs ein,
                                  das mit UTF/Unicode zu tun hat.
                                  Welchen Editor verwendest Du?
                                  Oeffne die Datei mal mit einem anderen Editor, z.B. Notepad oder Phase 5.

                                  Am besten schaust Du die Datei mal mit einem sogenannten
                                  Hex-Editor / Hex-Viewer an!
                                  Z.B. mit http://www.hexedit2000.de/ oder so.
                                  Dort siehst Du Byte fuer Byte, was die Datei enthaelt.
                                  Nur so kannst Du ganz, ganz sicher sein, dass sie
                                  wirklich direkt mit PHP anfaengt.

                                  Die ini_set() Methode statt der header Methode funtkioniert auch nicht, er scheint es einfach zu ignorieren.

                                  Wenn die Header schon geschickt wurden, kommt jeder Versuch,
                                  sie mit ini_set() zu aendern, zu spaet...

                                  Ich werd mal meinen Webhoster anmailen und mal fragen, ob ich nicht per .htaccess den php default_mimetype ändern darf.

                                  Finde ich nicht sehr schlau.

                                  Kannst Du mir bitte endlich (noch) einmal erklaeren, _warum_ Du unbedingt
                                  diesen MIME-Typ application/xhtml+xml schicken willst?

                                  Er ist ja fuer 80 - 90% der "Browser" da draussen (d.h. MS IE) toedlich,
                                  und somit nur fuer Testzwecke oder fuer Dinge sinnvoll, die Du mit Deinem
                                  Browser als einziger Benutzer anguckst (oder noch eine Handvoll von
                                  Deinen Bekannten, die ebenfalls mit einem XHTML-faehigen Browser
                                  unterwegs sind).

                                  kann ich dir vielleicht mal einen Screenshot von meiner php-Datei schicken oder die Datei selbst? So, wie ich sie auf den Webserver hochgeladen habe.

                                  Ein Screenshot hilft auch nicht weiter, da die "boesen" Zeichen,
                                  die offenbar in der Datei sind und dafuer sorgen, dass die Header
                                  zu frueh rausgeschickt werden, "unsichtbar" sind.

                                  Mails zu Fachfragen mag ich nicht. Hier im Forum wird diskutiert.
                                  Also schick mir bitte nichts. Sondern stell allenfalls Dinge online
                                  und poste hier die URL, bitte als Link (</faq/#Q-19>).

                                  Um PHP-Quellcode fuer andere sichtbar zu machen,
                                  kannst Du die Datei z.B. kopieren und umbenennen:
                                  skript.php.txt
                                  oder
                                  skript.phps

                                  Im ersten Fall wird der Quelltext als text/plain ausgeliefert.
                                  (Der MS IE ist manchmal so daemlich, es trotzdem als
                                  HTML zu interpretieren, anstatt es einfach anzuzeigen.)

                                  Im zweiten Fall (der nicht immer funktioniert) wird der Quellcode
                                  von einem PHP-Automatismus huebsch bunt angefaerbt und
                                  als HTML-Quellcode (text/html) ausgeliefert.

                                  Gruesse,

                                  Thomas

                                  1. Hallo,
                                    nun funktioniert es ! Der Tip mit dem HEX-Editor ist gold wert, da standen doch tatsächlich noch 3 merkwürdige Zeichen am Anfang.

                                    Warum will ich unbedingt application/xhtml+xml als MIME-Type ...
                                    Nun, da steckt kein wirklich wichtiger Grund dahinter.
                                    Erstens ist die Seite nur für mich und Bekannte/Verwandte, die Mozilla oder Opera oder Konqueror benutzen, diese Browser haben kein Problem damit. Der IE interessiert mich daher recht wenig.
                                    Zweitens wollte ich mich unbedingt streng an XHTML halten, weil es einfach mal lernen wollte, und Erfahrung damit sammeln wollte, vor allem wo es Probleme bereitet. Die ganze Aktion hier mit dem MIME-Type ist schon mal ein großer Erfahrungswert für mich (ohne das jetzt negativ oder positiv bewerten zu wollen)
                                    Drittens kapier ich nicht warum ein und diesselbe Datei mit dem MIME-Type text/html nicht korrekt angezeigt wird, mit application/xhtml+xml aber schon.
                                    Hier ist die php-Datei vor der HEX-Editor Behandlung, also mit falsch übermittelten MIME-Typ:
                                    http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float.php
                                    und hier nach der HEX-Editor Behandlung, also mit korrektem MIME-Type
                                    http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float_hex.php
                                    letzters kannst du natürlich nicht mit dem IE öffnen. Ich hoffe, du hast einen Alternativ-Browser installiert.
                                    Bis auf den übermitteln MIME-Typ sind die Dateien vollkommen identisch.

                                    Gruß
                                    matrix1977

                                    1. Hallo,

                                      nun funktioniert es ! Der Tip mit dem HEX-Editor ist gold wert, da standen doch tatsächlich noch 3 merkwürdige Zeichen am Anfang.

                                      Das ist vermutlich das BOM-Zeugs von Unicode, das ein
                                      uebereifriger HTML-Editor (welcher?) reingepflanzt hat.

                                      Bei UTF-8, das Du ja verwendest, ist es AFAIK ueberfluessig.
                                      Naehere Infos siehe:
                                      http://www.unicode.org/unicode/faq/utf_bom.html

                                      Mit Unicode kenne ich mich ueberhaupt nicht aus, und ich habe
                                      jetzt gerade weder Zeit noch Lust, mich damit zu befassen.

                                      Zweitens wollte ich mich unbedingt streng an XHTML halten, weil es einfach mal lernen wollte, und Erfahrung damit sammeln wollte, vor allem wo es Probleme bereitet.

                                      Wie hier in zahlreichen Threads immer wieder geaeussert wurde,
                                      ist nur rueckwaerts-kompatibles XHTML 1.0, das als text/html
                                      ausgeliefert wird (sofern der Browser nicht ausdruecklich sagt,
                                      dass er auch application/xhtml+xml akzeptiert), wirklich alltagstauglich.

                                      Aber fuer Deine private Spielwiese darfst Du natuerlich andere
                                      Regeln aufstellen...

                                      Die ganze Aktion hier mit dem MIME-Type ist schon mal ein großer Erfahrungswert für mich (ohne das jetzt negativ oder positiv bewerten zu wollen)

                                      Ja, anhand von so Problemen kann man eine ganze Menge
                                      ueber HTML, HTTP, Apache, PHP und den Rest lernen... ;-)

                                      Drittens kapier ich nicht warum ein und diesselbe Datei mit dem MIME-Type text/html nicht korrekt angezeigt wird, mit application/xhtml+xml aber schon.
                                      Hier ist die php-Datei vor der HEX-Editor Behandlung, also mit falsch übermittelten MIME-Typ:
                                      http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float.php

                                      => Bitte (</faq/#Q-19>) lesen und anwenden, danke.

                                      http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float.php

                                      Wird ausgeliefert als: text/html

                                      Beginnt mit:

                                      [Unsichtbaren Zeichen, evtl. BOM?]
                                      <?xml version="1.0" encoding="UTF-8"?>
                                      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                                      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
                                       <head>
                                        <meta http-equiv="Content-type" content="application/xhtml+xml; charset=UTF-8" />
                                        <title>uni-matrix-01.de</title>
                                        <link rel="StyleSheet" href="teststyle_float.css" type="text/css" media="screen" />
                                       </head>

                                      Es gibt also einen Widerspruch zwischen dem per HTTP uebermittelten
                                      Content-Type und der Angabe im Meta-Tag.
                                      Der Browser sollte den HTTP-Header IMHO staerker gewichten,
                                      was Mozilla offenbar auch tut.

                                      und hier nach der HEX-Editor Behandlung, also mit korrektem MIME-Type
                                      http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float_hex.php

                                      Wird ausgeliefert als application/xhtml+xml

                                      Beginnt (hoffentlich) direkt mit:
                                      <?xml version="1.0" encoding="UTF-8"?>

                                      Bei beiden Dateien ist Mozilla im Standards compliance mode.
                                      Am Doctype Switch (*) kann es also nicht liegen, dass er
                                      die Dateien unterschiedlich darstellt.

                                      letzters kannst du natürlich nicht mit dem IE öffnen. Ich hoffe, du hast einen Alternativ-Browser installiert.

                                      Natuerlich! ;-) Ich arbeite die meiste Zeit unter Linux, und dort mit Mozilla 1.5.
                                      Und auch unter Windows starte ich den MS IE nur noch, um meine eigenen
                                      Seiten damit zu testen. Sonst surfe ich schon laengst mit Opera oder Mozilla.

                                      Bis auf den übermitteln MIME-Typ sind die Dateien vollkommen identisch.

                                      Aber eben der MIME-Typ macht es aus, ob der Browser die
                                      Datei als kaputtes XHTML oder als kaputtes HTML behandelt...
                                      Das ist zumindest meine Vermutung.
                                      Gibt es auch Unterschiede in der Darstellung, wenn die Dateien
                                      valide sind? Im Moment sind sie es ja nicht - Du hast Text,
                                      der nicht in einem Block-Level-Element steht.

                                      Gruesse,

                                      Thomas

                                      (*) Zum Thema Doctype Switch:
                                      http://www.heise.de/ix/artikel/2004/03/136/
                                      http://www.carsten-protsch.de/zwischennetz/doctype/
                                      http://www.mozilla.org/docs/web-developer/quirks/

                                      1. So !
                                        Nun hab ich nochmal die Mängel beseitigt.
                                        Kein Text mehr, der nicht innerhalb irgendwelcher Tags steht. Und der content-type im meta-tag bei der Datei, die mit dem HTTP-Header text/html kommt, ist nun auch text/html.
                                        Dennoch, die eine Datei mit dem MIME-Type application/xhtml+xml wird korrekt dargestellt, die andere, mit MIME-Type text/html nicht. Dabei benutz ich gar nichts aufregendes in meinem Dokument. Mir ist absolut schleierhaft, wieso er die so zerschießt.

                                        Mein Editor ist UltraEdit32 10.10c. Beide Dateien habe ich nochmal mit dem HEX-Editor nachbehandelt. Was nun ? :-)

                                        Gruß
                                        matrix1977

                                        1. Hallo,

                                          Was nun ? :-)

                                          Back to the roots.

                                          Du behauptest also, die folgenden beiden Dateien seien
                                          (bis auf Content-Type in HTTP-Head und Meta-Tag) identisch:
                                          http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float.php
                                          http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float_hex.php

                                          Stimmt aber nicht.
                                          Sie laden zwei verschiedene Stylesheet-Dateien:
                                          http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/teststyle_float_11.css
                                          http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/teststyle_float.css
                                          Und diese Dateien sind _nicht_ identisch.

                                          Folgender Abschnitt kommt z.B. nur in einer der beiden Dateien vor:

                                          div[class="menu_line"]
                                          {
                                           min-width: 1000px;
                                           height: 39px;
                                          }

                                          Ich ueberlasse es Dir, die beiden Stylesheets im Detail
                                          miteinander zu vergleichen...

                                          Naja, ich hoffe, Du hast bei all dem Stochern im Dunkeln
                                          trotzdem etwas profitiert, auch wenn die "Loesung" jetzt
                                          eher banal bis peinlich ist. ;-)

                                          Freundliche Gruesse
                                          Thomas

                                          1. Du behauptest also, die folgenden beiden Dateien seien
                                            (bis auf Content-Type in HTTP-Head und Meta-Tag) identisch:
                                            http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float.php
                                            http://ncg155.phoebe.netclusive.de/matrix1977/Version_3/test_float_hex.php

                                            Stimmt aber nicht.
                                            Sie laden zwei verschiedene Stylesheet-Dateien:

                                            Ach verdammt !! :-)
                                            keine Sorge, das hat damit nix zu tun !!!!!!!
                                            Das waren nur Tests meinerseits die ich durchgeführt habe, um dahinter zu steigen, leider erfolgslos !!
                                            JETZT sind es aber wirklich IDENTISCHE php und css Dateien, um die es hier geht (bis auf den MIME-Type).
                                            Trotzdem funzt es nicht mit dem MIME-Type text/html

                                            Nochmal sorry, für das andere Stylesheet, ich wußte aber zu diesem Zeitpunkt schon, dass es auch mit dem original Stylesheet nicht funtktioniert, also keine Sorge, ganz so dumm bin ich dann doch nicht :-)

                                            Gruß
                                            matrix1977

                                            1. Hallo,

                                              JETZT sind es aber wirklich IDENTISCHE php und css Dateien, um die es hier geht (bis auf den MIME-Type).

                                              Es ist nicht entscheidend, ob sie vom Code her identisch sind. Durch die unterschiedliche Kennzeichnung, text/html und application/xhtml+xml, werden die Dokumente gemäß unterschiedlicher Regeln verarbeitet. Ein und dieselbe Syntax hat in XHTML eine andere Bedeutung als in HTML.

                                              Die application/xhtml+xml-Datei sieht so aus:

                                              <div class="menu_line">
                                               <div id="menu_line_start" />
                                               <div class="menu_line_links"><a href="test.html" class="top_menu">Forum</a></div>
                                               <div class="menu_line_links"><a href="test.html" class="top_menu">Gästebuch</a></div>
                                               <div class="menu_line_links"><a href="test.html" class="top_menu">Fotos</a></div>
                                               <div class="menu_line_links"><a href="test.html" class="top_menu">Downloads</a></div>
                                               <div class="menu_line_links"><a href="test.html" class="top_menu">Privat</a></div>
                                               <div class="menu_line_links"><a href="test.html" class="top_menu">Webalizer</a></div>
                                               <div class="menu_line_links"><a href="test.html" class="top_menu">Info</a></div>
                                               <div class="menu_line_links"><a href="test.html" class="top_menu">News</a></div>
                                               <div id="menu_line_end" />
                                              </div>
                                              <div id="menu_left" />
                                              <div id="menu_bottom_png" />

                                              <div id="menu_line_start" /> usw. ist, wie du weißt, in XML äquivalent zu <div id="menu_line_start"></div>. Nicht aber, wenn das Dokument nicht als XML, sondern als HTML/SGML verarbeitet wird. Der Code mag zwar derselbe sein, er wird aber anders verarbeitet und führt zu einem anderen Elementbaum. Obiger Code erzeugt als HTML verarbetiet im Mozilla folgende Verschachtelung:

                                              <div class="menu_line">
                                               <div id="menu_line_start">
                                                <div class="menu_line_links"><a href="test.html" class="top_menu">Forum</a></div>
                                                <div class="menu_line_links"><a href="test.html" class="top_menu">Gästebuch</a></div>
                                                <div class="menu_line_links"><a href="test.html" class="top_menu">Fotos</a></div>
                                                <div class="menu_line_links"><a href="test.html" class="top_menu">Downloads</a></div>
                                                <div class="menu_line_links"><a href="test.html" class="top_menu">Privat</a></div>
                                                <div class="menu_line_links"><a href="test.html" class="top_menu">Webalizer</a></div>
                                                <div class="menu_line_links"><a href="test.html" class="top_menu">Info</a></div>
                                                <div class="menu_line_links"><a href="test.html" class="top_menu">News</a></div>
                                                <div id="menu_line_end"></div>
                                                <div id="menu_left">
                                                 <div id="menu_bottom_png"></div>
                                                </div>
                                               </div>
                                              </div>

                                              <div id="menu_line_start" /> usw. werden also als Start-Tags angesehen, nicht als gesamtes Element <div id="menu_line_start"></div>. Da bei dieser Interpretation am Ende die schließenden Tags fehlen, fügt sie Mozilla automatisch ein.
                                              Es ist logisch, dass dein CSS mit diesem Elementbaum nicht funktioniert. Wie gesagt solltest du die XHTML 1.0-Kompatibilitätsrichlinien beachten. Dort wird darauf hingewiesen, dass <div /> und ähnliches nicht zu empfehlen ist: http://www.w3.org/TR/xhtml1/#C_3. Die triviale Lösung für dein Problem sollte also sein, <div id="menu_line_start"></div> usw. statt <div id="menu_line_start" /> zu notieren, dann sollte der Code auch bei Verarbeitung als HTML den Elementbaum erzeugen, den du beabsichtigst.

                                              Mathias

                                              1. Danke !!
                                                Das ist es !! Man, also entweder man hat selbst etwas Erfahrung oder bekommt Hilfe von anderen, aber als Newbie sich alleine da durchzukämpfen ist echt extrem zeitaufwendig, vielleicht wäre ich auch irgendwann selbst drauf gekommen, keine Ahnung, aber im Moment jedenfalls sah es eher weniger danach aus.
                                                Also nochmals vielen Dank ! Die Lösung ist eigentlich schon trivial, aber manchmal scheitert man halt an solchen einfachen Sachen.

                                                Gruß
                                                matrix1977

                                  2. Ich hab nochmal ein wenig im Buch gestöbert.
                                    Zitat
                                    "Prinzipiell sollte man für XHTML-Dokumente den MIME-Type application/xhtml+xml benutzen, allerdings um den Preis, dass der Großteil der Browser heute damit nichts anfangen kann.
                                    ...
                                    Es ist momentan nicht leicht, einerseits standardkonform zu bleiben und andererseits mit den aktuellen Browsern kompatibel. Da die Entwicklung der Browser schnell voranschreitet, verweisen wir an dieser Stelle auf eine Online-Quelle: Unter http://www.w3.org/People/mimasa/test/xhtml/media-types/ finden Sie einen Test, der feststellt, welcher Browser welchen MIME-Typ akzeptiert. Selbstverständlich sind die Ergebnisse für bereits getestete Browser dort veröffentlicht."

                                    Es reizte mich halt, zu versuchen, XHTML-konform zu programmieren, also auch mit dem MIME-Typ application/xhtml+xml. Immerhin wird dann ja auch die Seite vom XML-Parser interpretiert, der ähnlich wie ein Compiler im Fehlerfall die Zeile und die Stelle innerhalb der Zeile angibt. Das gefiel mir auch schon mal gut, und als ich dann gesehen hab, dass eigentlich nur der IE damit Probleme hat, war ich von der Idee angetan das weiter so konsequent durchzuziehen, denn wie bereits gesagt, der IE interessiert mich rech wenig, und die Seite ist nur für einen kleinen Personenkreis bestimmt, man könnte es auch als Test-Projekt bezeichnen :-)

                                    Gruß
                                    matrix1977

                                    1. Hallo,

                                      "Prinzipiell sollte man für XHTML-Dokumente den MIME-Type application/xhtml+xml benutzen, allerdings um den Preis, dass der Großteil der Browser heute damit nichts anfangen kann.

                                      Genau. Siehe auch </archiv/> ;-)
                                      http://www.w3.org/People/mimasa/test/xhtml/media-types/results (von Dir erwaehnt)

                                      Und noch ein paar weitere Links zum Thema XHTML und Content-Type:
                                      http://www.w3.org/TR/xhtml-media-types/#summary
                                      http://www.webstandards.org/learn/askw3c/sep2003.html
                                      http://www.xml.com/lpt/a/2003/03/19/dive-into-xml.html
                                      http://www.hixie.ch/advocacy/xhtml
                                      http://schneegans.de/tips/apache-xhtml/

                                      mfg,
                                      Thomas

                  3. hi,

                    Es nimmt mich wunder, ob ueberhaupt ein real existierender
                    Webserver wirklich in die HTML-Dateien reinguckt und aus
                    den Meta-Tags HTTP-Header macht.

                    nein, das ist auch keinesfalls aufgabe eines webservers.

                    die meta-tags mit dem http-equiv-attribut sind eben nur als äquivalente zu den "echten" HTTP-headern gedacht, wenn der seitenersteller gar nicht dafür sorgen kann, dass diese erzeugt werden - dann hat der _client_ die möglichkeit, sich daran zu orientieren.

                    dass aber der server diese aus den dateien auslesen und auch noch beachten soll, habe ich noch nie gehört. und es wäre auch wiedersinnig, weil der server dann auch statische seiten zu "parsen" hätte, und sich damit unnötige last aufhalst.

                    und es gilt nach wie vor, dass eine per "echtem" HTTP-header vom server im response mitgelieferte angabe vom client mit höherer priorität zu bewerten ist, als eine per meta-atg gemacht angabe.

                    gruss,
                    wahsaga

            2. hi,

              was passiert denn genau, wenn kein WebServer läuft ?
              Also wenn ich die Dateien bei mir lokal öffne, dann nicht über den Aufruf über einen bei mir lokal laufenden Webserver sondern einfach nur durch Doppelklick auf die html bzw. xhtml Datei. Da wird doch dann überhaupt kein http-header übertragen oder ?

              dann ermittelt der client den content type üblicherweise aus der dateiendung.

              was ja auch deine aussage von vorher,

              Firefox und Opera interpretieren die Datei nur dann richtig, wenn sie die Endung .xhtml trägt (egal ob als text/html oder application/xhtml+xml)

              bestätigen würde.

              gruss,
              wahsaga

          2. Hallo,

            ich verlass mich auf's meta-tag.

            Das ist schlecht und unzuverlaessig.

            ich nutz einen WebServer bei einem Webhoster, nicht bei mir privat, wie kann ich den content-type des http-headers ermitteln von meinem Webhoster ?

            http://cgi.w3.org/cgi-bin/headers
            http://www.schroepl.net/cgi-bin/http_trace.pl

            Mozilla: Ansicht -> Seiteninformationen (Ctrl-I),
            Feld "Typ"

            Vielleicht mit einem php-Script mit headers_sent() ?

            Eher nicht. Lies mal im Manual, was headers_sent() tut...

            Wie kann ich überhaupt Einfluss darauf nehmen oder es umgehen, sollte mir der content-type nicht passen ?

            RTFM.

            Wenn es ein Apache ist, kannst Du meist mit AddType in der
            .htaccess den MIME-Type bestimmen.

            PHP-Skripten schicken normalerweise text/html,
            es sei denn, Du schickst im Skript ausdruecklich
            einen anderen Header.

            Lies auch mal ein paar Threads weiter unten: [pref:t=77771&m=449168] ff.
            (HTML) XHTML 1.1 - Browserkompatitiblität von Gernot, 05. 04. 2004, 14:16

            Gruesse,

            Thomas