Avatar billede javanewbie Nybegynder
22. august 2002 - 11:14 Der er 13 kommentarer og
1 løsning

XHTML

Jeg er løbet ind i et lille problem...

Jeg har et XHTML dokument, som f.eks. kan indeholde en form. Denne form har naturligvis en action attribut der sættes til en eller anden URL.
Hvis jeg har angivet nogle GET-parametre til denne url, får jeg problemer.

Eksempel:
<form action="/path/dokument.asp?param1=x&param2=y">

Problemet er & som min parser straks tolker som en entity, og derfor brokker sig over at den ikke afsluttes med semikolon.

Hvad skal jeg gøre for at omgås dette? Kan jeg ikke gøre brug af & nogetsteds i mit dokument?
Avatar billede pelkjaer Nybegynder
22. august 2002 - 11:17 #1
prøv med

&amp

eller

&amp;
Avatar billede javanewbie Nybegynder
22. august 2002 - 11:18 #2
Det holder desværre ikke, for så bliver mit originale dokument jo noget volapyk.
Avatar billede javanewbie Nybegynder
22. august 2002 - 11:20 #3
<form action="/path/dokument.asp?param1=x&amp;param2=y">

Denne url vil i hvert fald ikke give den ønskede virkning.

Jeg vil jo gerne have et valid dokument både før og efter parsning.
Avatar billede pelkjaer Nybegynder
22. august 2002 - 11:21 #4
Det virker heller ikke uden ; ?

Det er måden man gør når man fx. koder asp for at gøre der valid.
Avatar billede mr_mudderkode Nybegynder
22. august 2002 - 11:23 #5
Lytter lige med....

pelkjaer >> Som han siger: dokumentet skal fungere både før og efter parsning, og så dur det ikke at smide &amp ind istedet for & da hans parameter så pludselig har et forkert navn.

<form action="/path/dokument.asp?param1=x&ampparam2=y">
Avatar billede janegil Nybegynder
22. august 2002 - 11:36 #6
<form action="/path/dokument.asp?param1=x%26param2=y">

%26 blir ikke endret av XML-parsingen, gir et gyldig XML-dokument både før og etter parsing, og SKAL virke på web-serveren. Dog er det noen steder det ikke virker, så det må testes på den enkelte server, og er en risiko hvis det skiftes webserver.
Avatar billede Slettet bruger
22. august 2002 - 12:00 #7
&amp; (husk semikolon) er den korrekte måde (og har faktisk været det siden HTML 3.2, AFAIK) at benytte &-tegnet i ALLE typer web-dokumenter (også i f.eks. et <p> tag), da det benyttes til entities. Roden til at man kan bruge det for sig selv, er den samme som alle andre web-problemer: "slape" browsere, der tillader for meget.

Det eneste sted jeg har haft problemer med at bruge "&amp;" er i en streng i et JavaScript, f.eks.:

document.location="newpage.asp?var1=4&amp;var2=3";

- Her får ihvertfald IE4/Win, og en del Mac-versioner, ikke "var2" med videre...

/CS
Avatar billede janegil Nybegynder
22. august 2002 - 12:08 #8
Har testet litt, ser ut til at serverne har mindre støtte for %26 enn sist jeg testet på disse sakene.

http://hoppa.com/search.en.pl.gz?u=rheingold%26b=u%26l=%26c=%26c2=
er (nesten) ekvivalent med
http://hoppa.com/search.en.pl.gz?u=rheingold&b=u&l=&c=&c2=

De anddre testene jeg har kjørt, var negative.
Avatar billede keysersoze Guru
22. august 2002 - 12:22 #9
du kan ikke forvente at du - specielt når du arbejder med asp - bare uden videre kan få valideret dit xhtml-dokument. Selvfølgelig kan det lade sig gøre, men så er det en masse ting i asp'en man skal lave om og på den baggrund er det knap så optimalt at få et korrekt stykke xhtml
Avatar billede javanewbie Nybegynder
22. august 2002 - 12:22 #10
Ok. Så må jeg jo bøje mig, og sige at pelkjaer's svar også var korrekt.

Pelkjaer >> Smid lige et svar, og så må i deles lidt om pointene...
Avatar billede javanewbie Nybegynder
22. august 2002 - 12:56 #11
Nej, jeg kan altså ikke få det til at fungere...

Hvis det I skriver er korrekt, så burde jeg vel også kunne skrive direkte i browserens adressefelt:

http://www.domain.com/testpage.asp?param1=x&amp;param2=y

Men så får jeg blot at vide at parametret param2 slet ikke er sat, men det er amp;param2

:-(
Avatar billede javanewbie Nybegynder
22. august 2002 - 13:42 #12
Argh!

Jeg har fået det til at virke nu... Det dur ikke når man taster det direkte ind i adresse-feltet, men fint når det er et dokument der f.eks. har et link der er skrevet med denne syntaks.

I må lige smide jeres svar igen.

Jeg beklager...
Avatar billede janegil Nybegynder
22. august 2002 - 14:33 #13
Nei, du skal IKKE kunne skrive &amp; direkte i adressefeltet. Når du følger en lenke med &amp; skal browseren unescape til & FØR den legger URLen i adressefeltet. Når du taster direkte som over, har du ingen parameter som heter "param2", de heter nok "param1" og "amp;param2".

(Unescaped "&" er fullt gyldig i en URL. Det er først hvis den URL'en blir plassert i et HTML eller XML-dokument, at "&" gjør koden ugjyldig.)
Avatar billede javanewbie Nybegynder
27. august 2002 - 09:53 #14
Hvis folk ikke vil svare, så lukker jeg sgu...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester