Avatar billede ponyboye Nybegynder
23. maj 2005 - 00:31 Der 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)
   
    i = 1
    while not rs.EOF
   
    strNavn = rs("kommunenavn")
    strLink = "<a href='firma.asp?id=" & rs("komid") & "'>" & strNavn & "</a>"
   
    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
Avatar billede necro655 Nybegynder
26. maj 2005 - 11:12 #1
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.
Avatar billede thesurfer Nybegynder
21. juni 2005 - 00:52 #2
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..

/theSurfer
Avatar billede thesurfer Nybegynder
21. juni 2005 - 00:57 #3
3)

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

/theSurfer
Avatar billede ponyboye Nybegynder
05. juli 2005 - 09:49 #4
thesurfer tak for dit svar, fik det til at virke. Smid et svar
Avatar billede thesurfer Nybegynder
06. juli 2005 - 18:10 #5
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
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

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