Autor Zpráva
fanky
Profil
Výjimečně potřebuju udělat stránky v xhtml, je to docela nutné, ale potíž je, že nevím jak, dělám stránky jen v html
vím, že mi někdo může poradit, ať se na to vyfláknu, ale je to pro mě důležité, proto budu rád za každý návod pro začátečníka

prostě potřebuju mime type application/xhtml+xml

zkoušel jsem tento php kód

if (isset ($_SERVER["HTTP_ACCEPT"]) AND stristr ($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")):
header ("Content-type: application/xhtml+xml; charset=utf-8");
$mimetyp = "application/xhtml+xml";
else:
header ("Content-type: text/html; charset=utf-8");
endif;

ale asi není funkční, potíž je také v tom, že nevím kam ho umístit, zkoušel jsem toto, ale asi je to nesmysl, tak prosím nekamenovat
<!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">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<title>Untitled Document</title>

<?php
if (isset ($_SERVER["HTTP_ACCEPT"]) AND stristr ($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")):
header ("Content-type: application/xhtml+xml; charset=utf-8");
$mimetyp = "application/xhtml+xml";
else:
header ("Content-type: text/html; charset=utf-8");
endif;
?>

</head>

<body>
zkouším udělat pravé xhtml
</body>
</html>


díky
Joker
Profil
Musí to být úplně na začátku, všechny funkce header() se musí zavolat dřív, než se odešle jakýkoliv výstup do prohlížeče. Takže celý ten PHP skript je potřeba přesunout na začátek tak, aby první znaky v souboru byly <?php. Nemůže před tím být ani mezera, ani prázdný řádek a pokud je soubor v UTF, pozor na identifikační bajty (BOM).
Joker
Profil
Druhá varianta by byla použít ukládání výstupu (output buffering), ale tohle mi přijde jednodušší.
fanky
Profil
ahoj, díky za radu, jestli jsem to dobře pochopil, nevím, ale udělal jsem to takto:
<?php

if (isset ($_SERVER["HTTP_ACCEPT"]) AND stristr ($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")):
header ("Content-type: application/xhtml+xml; charset=utf-8");
$mimetyp = "application/xhtml+xml";
else:
header ("Content-type: text/html; charset=utf-8");
endif;
?>

<!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">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<title>Untitled Document</title>


</head>

<body>
zkouším udělat pravé xhtml
</body>
</html>

přesto se mime typ pořád chová jako text/html

EDIT: Tak už jsem vyřešil, stránku je nutno zřejmě uložit jako *.xhtml :-)
EDIT2: Tak ne, tímto směrem asi cesta nevede, prohlížeče na koncovku xhtml koukají divně, má někdo prosím radu, díky moc
Petr Tichý
Profil
Tak už jsem vyřešil, stránku je nutno zřejmě uložit jako *.xhtml :-)
To by právě nemělo být nutné.

Zkus to bez té podmínky a všem posílat správný MIME. Jestli to půjde tak hledáš chybu jinde, než by si měl.
fanky
Profil
Petr Tichý

ahoj, no docela se v tom motám, ale potřebuji to výjimečně udělat

pokud to uložím jako *.html, tak se to Mime Typ pořád tváří jako text/html i když odstraním podmínku :-(

bych tak neotravoval, kdyby to nebylo nutné

opět díky za každou připomínku

při logické koncovce PHP to píše:
Warning: Cannot modify header information - headers already sent by (output started at /data3/fanky/public_html/xhtml/index.php:1) in /data3/fanky/public_html/xhtml/index.php on line 3
fanky
Profil
http://charon.hkfree.org/pitrysek/xhtml/ je tohle už skutečné xhtml?

tak bohužel asi není, nevím už co s tím :-(
http://validator.webylon.info/check?uri=http%3A%2F%2Fcharon.hkfree.org%2Fpitr ysek%2Fxhtml%2F
Toto téma je uzamčeno. Odpověď nelze zaslat.