Nevalidní html
Zdravím,
Poradíte prosím, co udělat, když moje stránky obsahují odkazy na adresy obsahující ID a Level?
jde o to, že w3.org striktně prohlašuje moje stránky za nevalidní.
Našel by se třeba nějaký článeček, který řeší co s tím?
Díky
# r Line 201 column 72: reference to entity "KatID" for which no system identifier could be generated.
...author/Detail.asp?ClanekID=295&KatID =1012" target="_blank">manuál<
✉
# Info Line 115 column 66: entity was defined here.
...la.cz/author/Detail.asp?ClanekID=295&KatI D=1012" target="_blank">Download
# Error Line 202 column 79: reference to entity "Level" for which no system identifier could be generated.
...scripts/detail.asp?itemid=20390&Leve l=2107" target="_blank">info
Pro jaký DOCTYPE to má být validní?
Lepší by bylo sem vložit část zdrojáku nebo dát odkaz na tu konkrétní stránku.
Target "_blank" taky asi nebude to pravé ořechové.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Musím to tak mít nemám a výběr (musím to mít stejné jako zbytek - NE MOJEHO webu)
Vzhledem k tomu, že nemohu publikovat předem, nemohu poskytnout část zdrojáků)
Díky
Možná by pomohlo převést v URL ampersand & na entitu &
Řekl bych, že ampersand je specialní entita a tudíž musí být napsaná jako
. Mělo by to vypadat asi takto:
No, ono záleží na nastavení serveru, jestli to na entitu převede automaticky...
Jinak běžně stačí psát jenom "&" a validátorem to projde bez problémů.
Pokud je nutné převod na entity zajistit skriptem a je povoleno měnit konfiguraci serveru, tak to lze pomocí PHP takto:
//edit: teď jsem si uvědomil, že tazatel má stránky v ASP, takže moje poznámka o PHP je irelevantní...
Vyzkouším, ozvu se za chvíli
tak mi to nefunguje
ADODB.Field error '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/author/_inc/Kategorie_INC.asp, line 248
BTW. author je smyšlený, samozřejmě jde o jiný hosting.
Nahradenie & za & vo všetkých adresách, ktoré sú priamo na HTML stránke, by malo validitu stránky naozaj vyriešiť (bez vedľajších účinkov). Dúfam, že nahrádzaš & za & len vo výstupnom HTML, a nie napríklad aj v Response.Redirect a pod. Skús si vypísať, že aký parameter dostane ten skript, v ktorom dochádza ku chybe pri čítaní z databázy.
BTW: Používateľské vstupy by si mal mať ošetrené a po vykonaní SQL príkazu by si mal tiež kontrolovať, či sa nejaký záznam našiel (tuším cez kontrolu rs.eof), aby to takto nepadalo v prípade, že sa zadá niečo neočakávané alebo sa nenájde žiaden záznam.
Pokud to můžu nahradit přímo v odkazu, tak potom ten odkaz nefunguje. To bude ale asi chyba spíše těch stránek, že?
původní
http://www.zebra.cz/rozruch/Detail.asp?ClanekID=295 &KatID=1012
upravený
http://www.zebra.cz/rozruch/Detail.asp?ClanekID=295 &KatID=1012
Ak by HTML kód vyzeral takto:
tak sa na stránke zobrazí takto:
a bude odkazovať správne.
Neviem, ako a kam dávaš tú adresu - skús sem dať ten HTML kód odkazu tak, ako ho vygeneruješ (prípadne kus zdrojového kódu, ktorým ten odkaz generuješ) a uvidíme. Dúfam, že tú adresu s & nezadávaš priamo do prehliadača, lebo to určite fungovať nebude...