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
Ř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...