Strict-mode. & är ett specialtecken i html, det märker du ju när & är samma som & ;) Jaha, där ser man =) Märkligt att jag inte har stött på det problemet tidigare (då jag ändå har hållt på ett gäng många år) Testa med:ovaliderat med & i url
Jag har en länk som ser ut så här:
<code>bildarkiv.php?b=1&f=bildarkiv/Systemfoton</code>
När jag försöker validera den på http://validator.w3.org så får jag meddelandet:
<code>cannot generate system identifier for general entity "f".
An entity reference was found in the document, but there is no reference by that name defined.
Often this is caused by misspelling the reference name, unencoded ampersands, or by leaving off the trailing semicolon (;).
The most common cause of this error is unencoded ampersands in URLs as described by the WDG in "Ampersands in URLs".</code>
Byter jag ut &-tecknet i länken mot & så fungerar det.
Sen när blev det så?Sv: ovaliderat med & i url
Alltså, en webbläsare söker alltid efter ; efter ett &-tecken och byter ut dem mot det rätta tecknet.
Så, du måste alltid ersätta alla & med &, alltså köra en HTMLEncode på all text du skriver ut (även länkar)Sv:ovaliderat med & i url
Sv: ovaliderat med & i url
<code>bildarkiv.php?b=1&f=bildarkiv%2FSystemfoton</code>
Jag tror det är ditt snedsträck som strular.
<info>
the reserved character "/", if used in the "path" component of a URI, has the special meaning of being a delimiter between path segments.
If, according to a given URI scheme, "/" needs to be in a path segment, then the three characters "%2F" or "%2f" must be used in the segment instead of a raw "/".
</info>
Om du programerar asp skriver du så här:
Dim b, f, url
b = 1
f = "bildarkiv/Systemfoton"
url = "bildarkiv.php?b=" & b & "&f=" & Server.URLEncode(f)
b och f är exempel på dynamiska värden hämtade fråna databas, etc.
Om du har ett tal så behöver du inte köra den genom Server.URLEncode().