XHTML 1.1 + IE = Foute Combi ?
Ik ben bezig met een website, en deze heb ik het doctype xhtml 1.1 gegeven. Ik werk op een mac, en maak mijn websites vooral in firefox, met de handige tidy xhtml validator extentie. De website die ik heb gemaakt is volledig xhtml 1.1 valid, ook als ik hem door de validator van het w3c haal.
Nu keek een vriend van me op de pagina (IE6, Windows XP SP2), en hij kreeg de volgende error:
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
--------------------------------------------------------------------------------
Parameter entity must be defined before it is used. Error processing resource 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd...
%xhtml-prefw-redecl.mod;
-^
dit is mij doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Wat doe ik hier fout, of ondersteund internet explorer nog geen xhtml 1.1 ? is het misschien beter om xhtml 1.0 te gebruiken ?
Nu keek een vriend van me op de pagina (IE6, Windows XP SP2), en hij kreeg de volgende error:
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
--------------------------------------------------------------------------------
Parameter entity must be defined before it is used. Error processing resource 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd...
%xhtml-prefw-redecl.mod;
-^
dit is mij doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Wat doe ik hier fout, of ondersteund internet explorer nog geen xhtml 1.1 ? is het misschien beter om xhtml 1.0 te gebruiken ?
Gewijzigd op 18/12/2005 15:19:00 door Pim Vernooij
Ik gebruik ook XHTML 1.1(klik) en ik heb geen problemen. Dat komt omdat ik mijn pagina naar IE verzend als text/html en naar browsers die XHTML 100% goed ondersteunen, zoals de VuurVos, als application/xhtml+xml
Jij verzendt hem misschien als text/xml of application/xhtml+xml naar alle browsers. En dat is niet goed aangezien Internet Expleurer dat niet ondersteunt.
Jij verzendt hem misschien als text/xml of application/xhtml+xml naar alle browsers. En dat is niet goed aangezien Internet Expleurer dat niet ondersteunt.
en dat verzenden doe je doormiddel van een check met php ? kan je misschien een voorbeeld/hint geven ? of check je het met $_SERVER['user_agent'] ?
btw, FireFox is niet 100% compatible met XHTML, officieel zijn er maar 3 browsers die het volledig ondersteunen, 1 daarvan is Safari, maar dat terzijde :) FireFox komt er wel dichtbij ^^
/edit
iets anders -> wat is het verschil tussen en ? wat is de meest gebruikte ?
btw, FireFox is niet 100% compatible met XHTML, officieel zijn er maar 3 browsers die het volledig ondersteunen, 1 daarvan is Safari, maar dat terzijde :) FireFox komt er wel dichtbij ^^
/edit
iets anders -> wat is het verschil tussen en ? wat is de meest gebruikte ?
Gewijzigd op 18/12/2005 15:41:00 door Pim Vernooij
Die encoding heeft met de charset te maken, dat maakt opzich voor mij niet zoveel uit. De meest gebruikte is dacht ik unicode's UTF-8.
En de juiste headers verzenden doe ik met dit:
En de juiste headers verzenden doe ik met dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Oke, opeens was ik niet meer ingelogt. :o
ik heb dat stuk code helemaal bovenaan gezet ($xhtml_accept() zonder $), maar het werkt niet :s ik krijg gewoon dezelfde error :/ kan je jou code tot en met de doctype laten zien?
Dat wil je niet. En dat kan ook niet :+
Alles trek ik uit de database. Misschien kan je beter jou gegeneerde code posten. Of een link geven.
Alles trek ik uit de database. Misschien kan je beter jou gegeneerde code posten. Of een link geven.
index.php ziet er nu zo uit (het document type gedeelte dan :) )
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
function xhtml_accept() {
if (!isset($_SERVER['HTTP_ACCEPT']) || !preg_match("#application/xhtml\+xml#si", $_SERVER['HTTP_ACCEPT'])) {
return false;
}
return true;
}
if ( xhtml_accept() ) {
header("Content-type: application/xhtml+xml");
} else {
header("Content-type: text/html");
}
error_reporting( E_ALL );
session_start();
include( 'classes/index.class.php' );
$website = new Index();
$website->setUseArrayValue( FALSE );
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n"; //echo omdat php <? anders als php openings tag ziet...
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
function xhtml_accept() {
if (!isset($_SERVER['HTTP_ACCEPT']) || !preg_match("#application/xhtml\+xml#si", $_SERVER['HTTP_ACCEPT'])) {
return false;
}
return true;
}
if ( xhtml_accept() ) {
header("Content-type: application/xhtml+xml");
} else {
header("Content-type: text/html");
}
error_reporting( E_ALL );
session_start();
include( 'classes/index.class.php' );
$website = new Index();
$website->setUseArrayValue( FALSE );
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n"; //echo omdat php <? anders als php openings tag ziet...
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
En kan je me de output laten zien ervan? Als hij te lang is voor op het forum, moet je hem even via een persoonlijk bericht sturen.
@Sebastiaan
Om even terug te komen op jouw eerste post in deze thread: wat jij doet is niet toegestaan. XHTML 1.1 is gedefinieerd als pure XML en je mag dat dus niet als text/html versturen, zelfs niet als IE er dan niets mee kan.
Als je dan toch zonodig wilt dat mensen met IE je pagina kunnen zien, kun je op http://www.w3.org/MarkUp/2004/xhtml-faq#ie een hack vinden.
Om even terug te komen op jouw eerste post in deze thread: wat jij doet is niet toegestaan. XHTML 1.1 is gedefinieerd als pure XML en je mag dat dus niet als text/html versturen, zelfs niet als IE er dan niets mee kan.
Als je dan toch zonodig wilt dat mensen met IE je pagina kunnen zien, kun je op http://www.w3.org/MarkUp/2004/xhtml-faq#ie een hack vinden.
Ik heb het met een tip van sebastiaan opgelost. er stond comment-html code tussen het document type en de html tag, dit staat nu tussen de head tag, en het werkt. Het script op te checken of je browser wel xhtml compatible is, gebruik ik niet.




