Как подставить MIME-тип для XHTML MP?

makis

Новичок
Как подставить MIME-тип для XHTML MP?

Доброго времени суток.
У меня следующий вопрос. Для правильной валидации страниц сайта (xhtml mp) нужно, чтобы в заголовке страницы была отправлена информация, что эта страница является документом xml.
Всё-время пишет:
Unknown Parse Mode!
The MIME Media Type (text/html) for this document is used to serve both SGML and XML based documents, and it is not possible to disambiguate it based on the DOCTYPE Declaration in your document. Parsing will continue in SGML mode.
Я не могу задать для страницы с расширением php MIME-тип application/xhtml+xml. Пробую через админ-панель сайта, толку ноль - пишет, что для расширения php MIME-тип уже забит. Пробовал записать в .htaccess AddType application/xhtml+xml .php, результат вообще удручает - вместо открытия браузером страницы php он предлагает её скачать...
Даже пробовал прописывать в начале страницы следующий код:
PHP:
header ("Content-type: application/xhtml+xml");
Всё-равно не помогло. Подскажите в чём может быть мой косяк?
 

algo

To the stars!
Проверь по заголовкам, что тип действительно application/xhtml+xml

Не знаю, что такое MP, но на текущий момент лучше работать с (X)HTML под обычным MIME.
Меньше понтов и проблем AFAIK.
 

makis

Новичок
Это сайт для мобильных телефонов. XHTML Mobile Profile aka WML 2.0.
По заголовкам сейчас попробую пробить.

-~{}~ 06.07.07 01:26:

Заголовок почему-то не тот, что надо:
1 06.07.2007 01:22:27 Download state changed to Downloading
2 06.07.2007 01:22:28 Start new section [1]
3 06.07.2007 01:22:28 Start connection to wap.site.com:80 [1]
4 06.07.2007 01:22:28 Connecting to wap.site.com:80 [1]
5 06.07.2007 01:22:28 Connected [1]
6 06.07.2007 01:22:28 GET /index.php HTTP/1.0
User-Agent: Download Master
Accept: */*
Referer: http://wap.site.com/
Pragma: no-cache
Cache-Control: no-cache
Host: wap.site.com
7 06.07.2007 01:22:29 HTTP/1.1 200 OK
Server: nginx/0.5.26
Date: Thu, 05 Jul 2007 22:22:35 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Powered-By: PHP/5.2.3
P3P: CP="NOI NID ADMa OUR IND UNI COM NAV"
Cache-Control: private, must-revalidate
Set-Cookie: SN468d4cbc1c172=j9v8phjsjgpp0p71gmsn1s80a4; path=/
Set-Cookie: SN468d4cbc1c172=j9v8phjsjgpp0p71gmsn1s80a4; path=/
8 06.07.2007 01:22:29 Socket disconnected [1]
9 06.07.2007 01:22:29 Section complete [1]
10 06.07.2007 01:22:29 Download state changed to Downloaded
11 06.07.2007 01:22:29 DOWNLOAD FILE COMPLETE: C:\My Downloads\2007_07_06\index.php
12 06.07.2007 01:22:29 Start delete section [1]
13 06.07.2007 01:22:29 Section deleted [1]
14 06.07.2007 01:22:29 Downloaded file moved to C:\My Downloads\2007_07_06\index.php
Чего оно так делается? Я же явно задаю заголовок...

-~{}~ 06.07.07 01:28:

Заголовок страницы: Content-Type: text/html; charset=UTF-8
А я пишу в самом начале PHP-кода header ("Content-type: application/xhtml+xml");
Ума не приложу, где я налажал...
 

Духовность™

Продвинутый новичок
IE не понимает application/xhtml+xml

я так делаю:

PHP:
// Если в заголовке Accept имеется подстрока application/xhtml+xml, то отправляем 
// Сontent_type как application/xhtml+xml.
// Иначе как text/html.
if (strpos(@$_SERVER["HTTP_ACCEPT"], "application/xhtml+xml") !== FALSE) {
	$content_type = "application/xhtml+xml; charset=utf8";
} else {
	$content_type = "text/html; charset=utf8";
}

header("Content-type: $content_type");
 

makis

Новичок
Да... насчёт браузера. Я не осликом проматриваю страницы, а Оперой. Она-то понимает XML.
Далее... Тоже использую схожий код:
PHP:
if (isset($_SERVER["HTTP_ACCEPT"]) && stristr( $_SERVER["HTTP_ACCEPT"], "application/xhtml+xml") ) {
header ("Content-type: application/xhtml+xml");
} else {
header ("Content-type: text/html");
}
Забиваю в самом начале тела страницы... не помогает.
И, кстати, нашёл тут одну статью. Там пишут:
You're making a big mistake in assuming that an XHTML page that is not sent with a correct MIME type is an invalid XHTML page, "and thus tag soup". A valid (ie. it passes the Validator) XHTML document, even when sent as text/html, is still a valid XHTML document, and is NOT "tag soup" (nor invalid). If you're not sending a right MIME type, then only your presentation of the (valid) XHTML document is invalid. The document itself, however, is still perfectly valid (and, again, not "tag soup").
Так ли это?
 

makis

Новичок
Пытаюсь отправить application/xhtml+xml.
В опере пашет, просто при валидации страницы пишется, что страница имеет тип text/html, а не application/xhtml+xml.
 

makis

Новичок
Метатеги вообще не использую :)
Вот шапка страницы:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Валидация - проверка кода на "правильность" в соответствии со стандартами XHTML. (http://validator.w3.org).

Метатеги не использую, так как другой сайт тоже без мететегов отлично проходит валидацию.
 

Духовность™

Продвинутый новичок
А валидатор понимает такой doctype?

И вообще я не пойму - сайт для вапа, а почему вы его в опере проверяете?
 

makis

Новичок
triumvirat
А валидатор понимает такой doctype?
Ессно понимает :)

И вообще я не пойму - сайт для вапа, а почему вы его в опере проверяете?
К сожалению не располагаю большим кол-вом мобильных аппаратов. Имеется только один в наличии. На нём все прекрасно работает. Но не факт, что на всех остальных аппаратах тоже будет всё в порядке. Поэтому и стремлюсь к правильной валидации, чтоб хоть как-то обезопаситься от неверного понимания мобилкой страницы.
 

Lom

Новичок
header("Content-Type: application/vnd.wap.xhtml+xml");

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body></body>
</html>
 
Сверху