Услугата за валидиране на W3C Markup не показва DOCTYPE

Защо W3C ми казва, че нямам зададен doctype за моите страници (по-специално начална страница)? Моята начална страница използва 1column.phtml, който има валиден doctype (вижте по-долу) и можете да видите когато преглеждате източника в браузъра. Услугата за валидиране на w3c маркиране ми казва, че няма зададен doctype, защо?!

<!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="en" lang="en">

Нашият сайт за разработка показва валиден doctype.. и дори се опитах да взема шаблона 1column.phtml (root) от там и да заменя живия и пак нищо. Абсолютно не знам какъв е проблемът.


person Nick Rolando    schedule 22.10.2012    source източник


Отговори (2)


Първите 8 реда от началната страница, както се изпраща до валидатора, предшестват doctype и казват:



Строги стандарти: Aitoc_Aitpagecache_Mobile_Detect::__construct() [aitoc-aitpagecache-mobile-detect.--construct]: Не е безопасно да разчитате на настройките на часовата зона на системата. Моля, използвайте настройката date.timezone, променливата на средата TZ или функцията date_default_timezone_set(). В случай, че сте използвали някой от тези методи и все още получавате това предупреждение, най-вероятно сте написали грешно идентификатора на часовата зона. Избрахме 'America/New_York' за 'EDT/-4.0/DST' вместо това в /home/goorins/public_html/lib/Aitpagecache/Mobile/Detect.php на ред 42

Забележка: Недефиниран индекс: HTTP_ACCEPT в /home/goorins/public_html/lib/Aitpagecache/Mobile/Detect.php на линия 42

Строги стандарти: setcookie() [function.setcookie]: Не е безопасно да разчитате на настройките на часовата зона на системата. Моля, използвайте настройката date.timezone, променливата на средата TZ или функцията date_default_timezone_set(). В случай, че сте използвали някой от тези методи и все още получавате това предупреждение, най-вероятно сте написали грешно идентификатора на часовата зона. Избрахме 'America/New_York' за 'EDT/-4.0/DST' вместо това в /home/goorins/public_html/lib/Aitpagecache/Mainpage.php на ред 172< < b>/home/goorins/public_html/lib/Aitpagecache/Mainpage.php на ред 172


Което изглежда идва от AITOC magento плъгин. Означава малко за мен (PHP/apache/magento не е моето нещо), но изглежда, че Mobile/Detect.php ред 42 предполага, че ще има HTTP "accept" хедър за обработка. Валидаторът на HTML не изпраща HTTP заглавка "accept", така че възниква грешка, която се съобщава в горната част на изходната страница. Може да се окаже, че тъй като докладва грешката, той също докладва предупрежденията за неправилна конфигурация на настройките на часовата зона.

person Alohci    schedule 24.10.2012
comment
Ооо, човече, много ти благодаря! Това беше!! Глупав плъгин ›‹ Зададох часовата зона в конструктора и сложих isset() проверка на тези сървърни променливи и бам! Благодаря отново, много поздравления! - person Nick Rolando; 24.10.2012

Трудно е да се каже със сигурност без задълбочена сесия за отстраняване на грешки, но моето предположение е, че липсата на каквото и да е кодиране на знаци се изпраща обратно със заглавките на браузъра ви.

$ curl -I https://www.goorin.com/
HTTP/1.1 200 OK
Date: Tue, 23 Oct 2012 01:04:50 GMT
Server: LiteSpeed
Connection: close
Set-Cookie: frontend=7dcc17b985ecd8983ff6ade10e0f6f2c; expires=Tue, 23-Oct-2012 02:04:50 GMT; path=/; domain=..www.goorin.com; httponly
Set-Cookie: frontend=7dcc17b985ecd8983ff6ade10e0f6f2c; expires=Tue, 23-Oct-2012 02:04:50 GMT; path=/; domain=..www.goorin.com; httponly
Content-Type: text/html

което по някакъв начин кара кодирането на знаци да бъде разбито и валидаторът вече не го разпознава.

Опитайте да изтеглите началната си страница с curl

curl -I https://www.goorin.com/ > home.html

и след това с помощта на W3C услугата за валидиране на качване на файл (раздела „Проверка чрез качване на файл“). Когато направих това, валидаторът спря да се оплаква от вашето DOCTYPE.

Така че, дори и да не е липсата на кодиране на знаци във вашите заглавки, това сочи към проблема, който е доставката на HTML документа от вашия сървър до услугата за валидиране.

person Alan Storm    schedule 23.10.2012
comment
Дойдох тук, за да кажа същото и да отбележа, че Валидаторът вижда основния възел като br; - person benmarks; 23.10.2012
comment
Когато казвате липса на кодиране на знаци, имате предвид заглавката Content-Type, нали? Актуализирах го, за да отразява Content-Type: text/html; charset=UTF-8 и все още не получавам DOCTYPE :( - person Nick Rolando; 24.10.2012
comment
Или имате предвид заглавката за кодиране на съдържание? Тази стойност е gzip - person Nick Rolando; 24.10.2012
comment
@Shredder — както казах, не знам. По някаква причина този документ, когато е доставен от вашия уеб сървър, задейства грешката, но когато идва от друг уеб сървър или е качен директно, всичко е наред. - person Alan Storm; 24.10.2012