Avatar billede nanna31 Praktikant
29. juni 2006 - 20:34 Der er 10 kommentarer og
2 løsninger

problem med &-tegn i en streng

Når jeg skal indlæse en streng indholdende et &-tegn, kommer den del af strengen, der er efter &-tegnet, ikke med - hvordan kan man omgå dette problem?
Avatar billede krogstrup Nybegynder
29. juni 2006 - 20:38 #1
du kan url encode din streng.

default.asp?variabel=<%=server.urlencode(str)%>
Avatar billede nanna31 Praktikant
29. juni 2006 - 20:58 #2
Det der fatter jeg ikke en meter af?
Avatar billede Slettet bruger
29. juni 2006 - 21:11 #3
- prøv at smide din kode herinde - så skal jeg nok prøve at tilføje et eksempel i netop din kode, hvor dette problem med &-tegn så ikke er der...

\Dan
Avatar billede nanna31 Praktikant
29. juni 2006 - 21:20 #4
thanks


Dim aKey, aStatus

aKey =            Request.Form    ("fKey"        )
aStatus =        Request.Form    ("fStatus"    )

SQL = "Update test set"
SQL = SQL & " Status     = '" & aStatus         & "'"

SQL = SQL & " where Key Like '" & aKey & "%'"
CONN.Execute(SQL)
Avatar billede nanna31 Praktikant
29. juni 2006 - 21:23 #5
Undskyld - her kommer den rigtige kode:


Dim aKey, aStatus, test

aKey =            Request.Form    ("fKey"        )

SQL = "Select * From testbase Where Key Like '" & aKey & "%'"

Set RS = CONN.Execute(SQL)

    Response.Write("&test=true&")
    Response.Write("aStatus="     & RS("Status"))

CONN.Close
Set CONN = Nothing
%>
Avatar billede Slettet bruger
29. juni 2006 - 21:40 #6
ok... så laver vi da bare en function som altid vil lave &-tegn om til &amp;

<%
function ogtegn(streng)
ogtegn = replace(streng,"&","&amp;")
end function

Dim aKey, aStatus, test

aKey = ogtegn(Request.Form("fKey"))

SQL = "Select * From testbase Where Key Like '" & aKey & "%'"

Set RS = CONN.Execute(SQL)

    Response.Write(ogtegn("&test=true&"))
    Response.Write(ogtegn("aStatus=" & RS("Status")))

CONN.Close
Set CONN = Nothing
%>

\Dan
Avatar billede nielle Nybegynder
29. juni 2006 - 21:49 #7
... eller som krogstrup ganske fornuftigt lagde ud med:

Dim aKey, aStatus, test

aKey = Request.Form("fKey")

SQL = "Select * From testbase Where Key Like '" & aKey & "%'"

Set RS = CONN.Execute(SQL)
    Response.Write("&test=true&")
    Response.Write("aStatus=" & Server.UrlEncode(RS("Status")))
CONN.Close
Set CONN = Nothing
%>
Avatar billede nanna31 Praktikant
29. juni 2006 - 22:42 #8
Det spiller max med UrlEncode - det andet behøver jeg så ikke at teste.
Mange tak for hjælpen. Husk at lægge et svar.
Avatar billede nielle Nybegynder
29. juni 2006 - 22:51 #9
Server.UrlEncode() er faktisk skabt til formålet, og den klare iøvrigt en masse andre specialtegn forunden &-tegnet:

http://www.w3schools.com/asp/met_urlencode.asp

Points på denne her må vist tilfalde krogstrup :^)
Avatar billede krogstrup Nybegynder
29. juni 2006 - 22:57 #10
nielle >
jeg synes vi skal dele - du kom jo med det konkrete eksempel som hjalp nanna31
Avatar billede nielle Nybegynder
29. juni 2006 - 23:10 #11
Okilidokeli :^)
Avatar billede nanna31 Praktikant
29. juni 2006 - 23:41 #12
Strålende eksempel på fairgame :)
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

IT-JOB