Autor Zpráva
jaroslav7
Profil
Ahoj,
snažím se zvalidovat XHTML a nevím si rady s následujícími chybami:


Line 41, Column 36: an attribute value must be a literal unless it contains only name characters
<li class = "kategorie"><a href =<?php echo'Produkty2.php?kategorie=Alkohol…

Line 41, Column 46: an attribute value literal can occur in an attribute specification list only after a VI delimiter
…lass = "kategorie"><a href =<?php echo'Produkty2.php?kategorie=Alkohol'; ?>>…

Zkoušel sem to dát do uvozovek jak mi to radí, ale pak tomu nejspíš vadí "<" a chce abych použil nějakou escape sekvenci. Jak to mam upravit
na validní kod?

vlastní kod vypadá takto: <li class = "kategorie"><a href =<?php echo'Produkty2.php?kategorie=Alkohol'; ?>>Alkohol</a></li>

typ dokumentu: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Joker
Profil
Hlavní problém je, že nemáte validovat PHP kód, ale až výsledné HTML.
jaroslav7
Profil
Joker:
To sem moc nepochopil. To znamená, že v HTML souboru nemůžu mít žádný php kód? Jak mam potom oddělit php kód od HTML, aniž bych musel použít OOP? Na těch stránkách co páchám mám 25 souborů, z toho asi ve 20 používám HTML a php kód dohromady.
Rellik
Profil
V souboru html můžeš mít php kód. ale jelikož jde o html soubor, tak se ten php kód zobrazí jako obyčejný text (pokud teda není na serveru nastaveno že i s html dokumenty se má pracovat jako s php). Takže ti napíšu opak: v php souboru můžeš mít html kód. takže to cos vytvořil pouze přejmenuj ze soubor.html na soubor.php a hotovo... ;)
Joker
Profil
jaroslav7:
To znamená, že v HTML souboru nemůžu mít žádný php kód?
Validujte až výsledné HTML, které vznikne po zpracování toho PHP kódu, ne zdrojový PHP kód.
HTML validátor není určený k validaci PHP kódu a nerozumí mu.
jaroslav7
Profil
Rellik:
No já sem to měl původně jako php soubor. Přejmenoval sem to na html jen abych zkontroloval, jestli ten html kód je validní. Ty stránky jsou jako úkol do školy a strhávají se body za nevalidní HTML. Vzhledem k tomu, že tam nemam žádný soubor ve kterém by byl jen HTML kód, tak jsem myslel, že mam validovat i ty php soubory, kde se HTML kód vyskytuje.

Joker:
Validujte až výsledné HTML, které vznikne po zpracování toho PHP kódu, ne zdrojový PHP kód.
Mám dlouhý vedení, takže jak zvaliduju HTML, které vznikne po zpracování toho php souboru? Uploadem toho souboru to nejde. Tak jsem to zkusil zadáním adresy stránky, ale validátoru se nelíbí, že mu tam cpu adresu locallhostu.
Joker
Profil
jaroslav7:
Uploadem toho souboru to nejde. Tak jsem to zkusil zadáním adresy stránky, ale validátoru se nelíbí, že mu tam cpu adresu locallhostu.
Takhle to opravdu nejde, protože localhost se validátor nedostane.
Buď soubor nahrajte někam, kde bude mít veřejně dostupnou adresu, nebo druhá možnost:
Otevřete soubor na localhostu v prohlížeči a dejte validovat kód stránky (některé prohlížeče to umějí přímo, třeba v Opeře stačí kliknout pravým tlačítkem a vybrat „Prověřit zdrojový kód“, další možnost je otevřít zdrojový kód stránky, celý zkopírovat a vložit do validátoru jako přímý vstup)
Rellik
Profil
jaroslav7:
ale validátoru se nelíbí, že mu tam cpu adresu locallhostu.
Validátor se nedostane k tobě do PC. Pro potřebu testování a validování doporučuju vytvořit někde na nějakém free hostingu testovací stránky. A pomocí nich pak validovat výsledný kód. Např: http://wz.cz , http://www.php5.cz/ , http://profitux.cz , a další. Dokonce se dá myslím najít i stránky, u kterých nemusí být reklama. Jsou ale omezeny dostupným místem. Klidně to ale udělej na kterémkoliv freehostingu a pokud to budeš chtít validovat, tak tam reklamu nenačítej. vím že u WZ se pro relkamu musela vložit nějaká poznámka do kódu aby se reklama načetla. Jestli je to tak pořád už nevím... Ono totiž ty reklamy většinou validní nejsou. Pokud ti nevadí investovat 360,-kč, tak si můžeš objednat webhosting u wedosu doména je k němu zdarma a za těch 360,-kč má hosting na celý rok (30,-kč měsíčně myslím není zas tak moc ;) ) a můžeš si tam udělat pak své vlastní stránky a hromadu podstránek pro testování ve tvaru např. test.jaroslav.eu přičemž tvé stránky by byly jaroslav.eu - ber to jako příklad.. ;)
Chamurappi
Profil
Reaguji na jaroslava7:
Přejmenoval sem to na html jen abych zkontroloval, jestli ten html kód je validní.
Validátor má baštit výstup PHP skriptu, tedy stejný kód, jako dostávají webové prohlížeče. Je to jejich příbuzný, akorát méně zobrazuje a víc nadává. Do činností na serveru nevidí.


Reaguji na Jokera:
Takhle to opravdu nejde, protože localhost se validátor nedostane.
Nevím, jak na jiných systémech, ale ve Windowsu je možné vložit do standardního dialogového okna pro výběr souboru z disku normální webovou adresu. Systém ji stáhne (patrně Explorerem) a otvírá se pak z Temporary Internet Files. Takže jaroslav7 by možná mohl kliknout na upload, do dialogu místo souboru vložit webovou adresu s localhostem, OK, odeslat… a třeba by to chodilo.


Reaguji na Rellika:
Zníš jako reklamní letáček Wedosu. Tazatel dělá domácí úkol, asi si kvůli němu nebude kupovat hosting…
Rellik
Profil
Chamurappi:
Zníš jako reklamní letáček Wedosu. Tazatel dělá domácí úkol, asi si kvůli němu nebude kupovat hosting…
Já si taky kupoval hosting pro školní účely, když sem si před pár lety dělal IT nástavbu... ;) Za ty peníze to není taková hrůza ne? Já to uvedl jako jedno z možných řešení... ;)
jaroslav7
Profil
Tak jsem celkem úspěšně zvalidoval, nakonec bylo nejjednodušší použít Operu. Akorát mi to ještě hlásí chyby ohledně DOCTYPE. Všechny prohlížeče na kterých sem se koukal si totiž ten DOCTYPE přidají automaticky do kódu, i když ho mam ve zdrojovém souboru napsaný, takže je tam dvakrát a to se validátoru nelíbí:

ine 3, Column 4: DTDs other than base allowed only if CONCUR YES or EXPLICIT YES
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR

Line 3, Column 12: document type "html" already defined
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR

Neuvádět do zdrojového souboru DOCTYPE asi nebude nejlepší řešení, takže jak přesvědčit prohlížeč aby si tam nepřidával další navíc?

DOCTYPE mám:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Chamurappi
Profil
Reaguji na jaroslava7:
Všechny prohlížeče na kterých sem se koukal si totiž ten DOCTYPE přidají automaticky do kódu
Není pravda. To se neděje. Prohlížeče si zdrojový kód, který berou jako vstup, neupravují. Nemají k tomu důvod. Rozhodně si do něj nepřidávají takovou zbytečnost, jako je <!doctype>.

jak přesvědčit prohlížeč aby si tam nepřidával další navíc?
Přidáváš ho tam ty, někde ve svých PHP skriptech.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: