834HF42F242 Skrevet 19. september 2007 Del Skrevet 19. september 2007 (endret) LØST Eksempel: Dim intPage intPage = request.querystring("S") Jeg har laget meg en funksjon som forhindrer injection, og som jeg skal bruke på alle querystrings. Da må jeg få satt inn en variabel mellom (" og "), i stedet for det eksakte navnet, som i eksempelet over er S. Eks: Dim intPage, strString strString = S intPage = request.querystring("" & strString & "") Eksempelet ovenfor fungerer ikke. Ei heller med 1 eller 3 quotations. Er det umulig å putte en variabel inn der? Endret 20. september 2007 av neitakk Lenke til kommentar
dabear Skrevet 19. september 2007 Del Skrevet 19. september 2007 Dim intPage, strString strString = "S" intPage = request.querystring(strString) Eller misforstod jeg deg nå? Lenke til kommentar
834HF42F242 Skrevet 19. september 2007 Forfatter Del Skrevet 19. september 2007 (endret) Det funker heller ikke Request object error 'ASP 0102 : 80004005' Expecting string input The function expects a string as input. Edit: Overså gåseøynene dine rundt S Takk for hjelp Endret 19. september 2007 av neitakk Lenke til kommentar
j000rn Skrevet 19. september 2007 Del Skrevet 19. september 2007 intPage = request.querystring( strString ) Lenke til kommentar
dabear Skrevet 19. september 2007 Del Skrevet 19. september 2007 neitakk; du burde vel ikke lagre en string i en variabel du kaller for intPages? om intpages inneholder tall, kan du jo alltids kjøre en isnumeric og lagre til en int istedet. Lenke til kommentar
834HF42F242 Skrevet 19. september 2007 Forfatter Del Skrevet 19. september 2007 (endret) Lagrer ingen string noe sted. String spesifiserer kun hva som skal spørres etter i querystring. S i querystring brukes jo ikke som intPage = s Edit: Du kan jo få se funksjonen jeg har laget, og hvordan jeg "ringer den": Function filterRequest(sRequest,strQuery,ilen) if Request.QueryString(strQuery) <> "" then sRequest = Request.QueryString(strQuery) if isNumeric(sRequest) then sRequest = CLng(sRequest) else sRequest = ilen end if else sRequest = ilen end if filterRequest = sRequest end function intPage = filterRequest(intPage,"S",1) Som du ser, så ender jeg opp med en int-verdi uavhengig stringen som brukes for å spesifisere hvilken query det gjelder. Funker så det griner, og slipper å skrive de pokkers if-kodene for hver eneste query... hehehe! Endret 19. september 2007 av neitakk Lenke til kommentar
Manfred Skrevet 20. september 2007 Del Skrevet 20. september 2007 Kan folk snart lære seg å definere variabeltyper nå? Det er en fantastisk uting å ikke typedefinere variablene sine. Komplett idioti. Lenke til kommentar
834HF42F242 Skrevet 20. september 2007 Forfatter Del Skrevet 20. september 2007 (endret) Hvem, meg? bruker int, str, dtm og bit for harde livet.... Er det noe jeg ikke har definert i dette eksempelet? Temp-variabelen har jeg definert med "s", rett og slett fordi jeg ikke skal bruke den mer. Overtas av int-variabelen som "ringer" funksjonen. Endret 20. september 2007 av neitakk Lenke til kommentar
j000rn Skrevet 20. september 2007 Del Skrevet 20. september 2007 Overtas av int-variabelen som "ringer" funksjonen. 9534110[/snapback] Call/invoke a function = påkalle/kalle/starte en funksjon. Telefonsamtaler eller vekkerklokker som ringer når man programmerer er en uting... Lenke til kommentar
834HF42F242 Skrevet 20. september 2007 Forfatter Del Skrevet 20. september 2007 Overtas av int-variabelen som "ringer" funksjonen. 9534110[/snapback] Call/invoke a function = påkalle/kalle/starte en funksjon. Telefonsamtaler eller vekkerklokker som ringer når man programmerer er en uting... 9534766[/snapback] Herre min hatt da, det er en grunn til at det står i anførselstegn. I stedet for å skrive "calle" eller kalle klovn, skriver jeg noe som er lett å forstå. Lenke til kommentar
kaffenils Skrevet 20. september 2007 Del Skrevet 20. september 2007 Kan folk snart lære seg å definere variabeltyper nå? Det er en fantastisk uting å ikke typedefinere variablene sine. Komplett idioti. 9533492[/snapback] Enda mer fantastisk at det ikke er neitakk sin feil. VBScript, som er scriptspråket i ASP, har ingen syntax for å definere en variabels type. Dim someString as string gir feilmelding. Regner med at du forelsker deg enda mer i alt som inneholder bokstavene "VB" nå Lenke til kommentar
834HF42F242 Skrevet 20. september 2007 Forfatter Del Skrevet 20. september 2007 Misforstod jeg nå. Med typedefinering så mente han ikke Dim intNumber men Dim intNumber as interval ? Lenke til kommentar
Manfred Skrevet 20. september 2007 Del Skrevet 20. september 2007 Integer, i alle fall... Dim myVar As Interval = 3-45 Lenke til kommentar
GeirGrusom Skrevet 20. september 2007 Del Skrevet 20. september 2007 Finnes det folk som prefikser variablene sine enda? Hva er poenget? Du fåt vite datatypen? hva så? det burde du ha kontroll på i utgangspunktet, og hvis du har 100000 variabler, så må du dele opp koden din bedre. Deklarer alle variabler først, og kommenter dem, mer en det burde ikke være nødvendig. Nå er det ikke datatyper i VBScript (som jeg regner med er det dere bruke her) men i VB.NET er det utrolig viktig å bruke datatyper. Det har en stor ytelsesforskjell, og RAM forbruk. Lenke til kommentar
j000rn Skrevet 20. september 2007 Del Skrevet 20. september 2007 Overtas av int-variabelen som "ringer" funksjonen. 9534110[/snapback] Call/invoke a function = påkalle/kalle/starte en funksjon. Telefonsamtaler eller vekkerklokker som ringer når man programmerer er en uting... 9534766[/snapback] Herre min hatt da, det er en grunn til at det står i anførselstegn. I stedet for å skrive "calle" eller kalle klovn, skriver jeg noe som er lett å forstå. 9535133[/snapback] Sorry, jeg trodde du skrev det fordi du ikke viste det, og prøvde å være snill. Men når du sier at du vet det, men var SLØV å ikke gadd å skrive det ordentlig så er saken en helt annen, og dermed enda bedre grunn til at jeg skrev innlegget mitt. Skjerpings! Lenke til kommentar
j000rn Skrevet 20. september 2007 Del Skrevet 20. september 2007 Finnes det folk som prefikser variablene sine enda? 9536796[/snapback] I språk som ikke har datatyper er vel dette fortsatt (dessverre) "best practice"....? Lenke til kommentar
834HF42F242 Skrevet 20. september 2007 Forfatter Del Skrevet 20. september 2007 Function filterRequest(sRequest,strQuery,ilen) if Request.QueryString(strQuery) <> "" then sRequest = Request.QueryString(strQuery) if isNumeric(sRequest) then sRequest = CLng(sRequest) else sRequest = ilen end if else sRequest = ilen end if filterRequest = sRequest end function Lenke til kommentar
j000rn Skrevet 20. september 2007 Del Skrevet 20. september 2007 Joda, koden din er grei nok den. Manfred som driver med flisespikkeri... Men jeg ville nok heller skrevet den sånn: Function FilterRequest(sRequest,strQuery,ilen) if IsNumeric(Request.QueryString(strQuery)) then FilterRequest = CLng(Request.QueryString(strQuery)) else FilterRequest = ilen end if end function Lenke til kommentar
834HF42F242 Skrevet 20. september 2007 Forfatter Del Skrevet 20. september 2007 (endret) Forenklet og bedre kode. Min kode var slik fordi den egentlig inneholdt en variabel til hvis numerisk test feilet, som kunne brukes til å gjøre leseren oppmerksom på at noe var galt i adressefeltet. Men sløyfet det. Takk for kodem Endret 20. september 2007 av neitakk Lenke til kommentar
Manfred Skrevet 21. september 2007 Del Skrevet 21. september 2007 Joda, koden din er grei nok den. Manfred som driver med flisespikkeri... 9538937[/snapback] Jeg spikker svært sjelden Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå