Formulär

ASP

6 svar · 260 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Trådstart#1

När man har forumlär på en webbsida och kunder ska fylla i information, vad bör man göra med den ifyllda informationen innan man skickar den vidare till en annan sida eller in i en databas.

Om man skriver asp kod i ett forumlär körs det då av sidan när man ska hämta variabeln eller visa den.

Har ibland upptäckt att man kan få felmeddelandet incorrect parameter när man skickar information från en sida till en annan (sida.asp?variabel=<%=variabel%>

Det beror säkert på något förbjudet tecken.

Medlem sedan juni 200032 967 inlägg
#2

När du skickar värden i querystrings bör du urlencoda dem, om du inte vet vad de innehåller.

Exempel:

Response.redirect "sida.asp?namn=" & server.urlencode(namnet)

Och, nej, asp-kod som skickas i ett formulär körs inte av mottagarsidan, om du inte skriver koden så vill säga. Koden som skickas hanteras som en sträng.

Mvh,

Medlem sedan jan. 20013 406 inlägg
#3

Om jag skriver i ett formulär
"<%response.redirect <A HREF="http://www.annansida.se>"" TARGET=_blank>www.annansida.se>"</A>
och sedan spara det i databasen.

Sedan visar jag det på en annan sida på detta sätt <%=variabel%> går den då vidare till www.annansida.se eller visar den bara texten.

Det jag vill göra är att försäkra mig om att besökarna inte ska kunna skriva något som kan skada sidorna som t.ex javascript, html, asp m.m

Finns det någon bra funktion för detta förutom att använda server.HTMLEncode överallt.

Medlem sedan dec. 19998 577 inlägg
#4

Text ifrån databasen kommer alltid att köras som vanlig text, så det finns inget att oroa sig för att det skulle köras som ASP-kod. :)

Medlem sedan jan. 20013 406 inlägg
#5

Javascript och html då?
Html körs och det kan förstöra en hel del.

Medlem sedan jan. 20013 406 inlägg
#6

Är det viktigt att köra den här funktionen på allt som fylls i

Function FixaTecken(sfix)

sfix = Replace(Trim(sfix), "'", "''")
sfix = Replace(sfix, "&#0124;", "")
FixaTecken = sfix

End Function
Medlem sedan juni 200032 967 inlägg
#7

Jag vet inte vad pipe-tecknet gör, men apostrof bör du ersätta. Dels av säkerhetsskäl, men också eftersom du annars inte kan använda apostrofer i dina strängar i SQL-frågan.

Fel:

SELECT * FROM tblMedlemmar WHERE LastName = 'O'Connor'

Rätt:

SELECT * FROM tblMedlemmar WHERE LastName = 'O''Connor'

Mvh,

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)