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