23. maj 2005 - 00:31Der er
4 kommentarer og 1 løsning
hjælp til brug af session
Jeg har lavet et database udtræk hvor der bruges Request.Querystring, problemet med dette er at der kun kan huskes en underside af gangen og når der er fortager 3-4 valg på undersider giver det problemer når resultaterne skal udskrives.
Nu kunne jeg godt tænke mig at bruge session både til en søgning og når brugeren begiver sig rundt på siden, så der ikke bliver nogle problemer når der skal udskrives et resultat.
Denne session skal så hele tiden opdater sig for hvor bruger befinder sig.
Den side jeg har er et index hvor brugeren skal kunne vælge et amt herefter en kommune og en kategori og brugerens valg skal så udskrives fra access database.
vælger brugeren at gå en side tilbage skal session opdateres.
jeg har ikke prøvet at arbejde med session før og håber meget der er en der vil bruge lidt til på at guide mig igemmen dette arbejde for lige nu ved jeg ikke hvor jeg skal starte og slutte.
Jeg har kigget lidt på html.dk med der var ikkemeget hjælp at hente der-
strSQL = "Select * From kommune Where kommuneid = '"&Request.Querystring("id")&"'" Set rs = Conn.Execute(strSQL)
With Response .Write"<td height='22'>" .Write"<li>" & strLink & "</li>" .Write"</td>" & vbcrlf End With if (i mod 1) = 0 then Response.Write "</tr><tr>" & vbcrlf end if i = i + 1 rs.MoveNext wend
Sessions er utroligt nemt at brugt nemt at bruge..jeg ser at du allerede i den overstående kode bruger normale variabler.
For at lave en session variable skal du bare skrive sådan
Dim Tmp
Tmp = Session("A") ' Læs en variable fra en session variable. Session("A") = Tmp ' Skriv en værdi i en session variable
Man laver ikke en dim på en session variable..men skriver bare en værdi i en ..og så bliver den oprettet.
Session variable overlever selv om en bruger skifter sider. Den dør først når en bruger forsvinder fra sitet total...og derefter lever som som regl i ca 20min med mindre du som programmør selv nulstiller alt.
jeg håber dette er lidt hjælp.
Man kan gemme mange ting i en session variable. f.eks dit connection object. som om du altid bør åbne og lukke på samme side.
1) Request.Querystring kan jo sagtens indeholde flere variabler.. f.eks:
side.asp?var1=hej&var2=med&var3=dig
2) Where kommuneid = '"&Request.Querystring("id")&"'" Det er en meget dum ide, at bruge Request.Querystring direkte i din SQL sætning.. bruegre kan bruge SQL Injection og lave ballade.. hvad nu hvis brugere selv skrive noget?
Du skal ALTID "validere" dine data!:
dim q ' q står for Querystring q = Request.Querystring("id") q = replace(q, "'", "") ' jeg går ud fra, at der ikke er '-tegn i din "kommuneid"..!
strSQL = "Select * From kommune Where kommuneid = '" & q & "'" ...
Hvis feltet "kommuneid" er af typen tal, skal der være uden '-tegnene:
strSQL = "Select * From kommune Where kommuneid = " & q
Og så skal du sikre dig, at indholdet af "q" er af typen tal..
Man må ALDRIG indsætte brugerens kode, direkte i en SQL sætning.. brugeren kan nemlig "hacke" dit login, hvis du bruger det i forbindelse med login..
For nogen tid side (et par uger eller deromkring) lavede et referer-script, i ASP.. Da man kan slå referer fra i visse browsere, kan man ikke stole på det.. hverken i JavaScript eller i ASP..
a) opret en en fil kaldet inc.asp, med denne linie som indhold: <% Session("ref") = request.servervariables("path_info") %>
b) øverst på ALLE dine sider, indsætter du linien: <!-- #include file="inc.asp" -->
c) du kan nu hente siden frem med: session("ref") f.eks.: Du er nu på <% response.write session("ref") %>
Husk: - at bruge Option Explicit, så du nemmere kan fange stavefejl - når du bruger Option Explicit, så SKAL du "dimme" dine variabler: dim variabelnavn - når du bruger Option Explicit, så SKAL <% Option Explicit %> være den første linie i ASP filen
Undskyld jeg først svarer nu.. har haft en del (over)arbejde her på det det sidste.. så der er en del spørgsmål ,jeg mangler at følge op på..
Her er et svar :-)
/theSurfer
Synes godt om
Ny brugerNybegynder
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.