[ASP]Session probleem in webshop

Pagina: 1
Acties:

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 11-09 09:22
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    lvstrNr = Request.QueryString("cmdNr")
    lvstrType = Request.QueryString("cmdType")
    lvstrVoorNaam = Request.QueryString("cmdVoorNaam")
    lvstrTussenVoegsel = Request.QueryString("cmdTussenVoegsel")
    lvstrAchterNaam = Request.QueryString("cmdAchterNaam")

    If IsArray(Session("CCBox")) = False Then
        Dim tempAddCCBox(19,2)   
        tempAddCCBox(1,0) = lstrNr
        tempAddCCBox(1,1) = lvstrType
        tempAddCCBox(1,2) = lvstrVoorNaam & " " & lvstrTussenVoegsel & " " & lvstrAchterNaam 
        Session("CCBox") = tempAddCCBox
    Else
        tempAddCCBox = Session("CCBox")
        inCCBox = False
        For i = LBound(tempAddCCBox) To UBound(tempAddCCBox)
        If tempAddCCBox(i,0) = "" And tempAddCCBox(i,1) = "" And tempAddCCBox(i,2) = "" And Not(inCCBox) Then
                tempAddCCBox(i,0) = lstrNr
                tempAddCCBox(i,1) = lvstrType
                tempAddCCBox(i,2) = lvstrVoorNaam & " " & lvstrTussenVoegsel & " " & lvstrAchterNaam 
                inCCBox = True
            End If
        Next
        Session("CCBox") = tempAddCCBox
    End If

Dit is een webshop met een cart, wel te verstaan de CCBox waar personen in op geslagen worden. Een winkel waar je personen kunt kopen zeg maar. (om het simpel te houden).

Om de een of andere reden is de CCBox altijd leeg. Dit ligt NIET aan de Session TimeOut! Ziet iemand waar ik een steek laat vallen? Bij voorbaat dank.

Verwijderd

Slavenhandel? :)

Je kunt geen arrays in het sessionobject stoppen, alleen objects en valuetypes. Ik dacht van de week hetzelfde te doen, maar no luck there. Als je het afkunt met variables, dan zou ik daarvoor gaan, anders zou je kunnen kiezen voor een dictionary object. Maar hou er rekening mee: hoe meer dingen je in het session object stopt, hoe minder je applicatie scaled (dus hoe meer bezoekers hoe sneller hij ten aarde stort :)). Gebruik daarom voor kleine dingentjes het session en voor grotere bakken data een database voor het bewaren van 'state' info.

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 11-09 09:22
huh? Ik heb anders van mnr ACart wat code geleend alla:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if stage="" or stage=null then

else
    'add to shopping bag
    'create cart
    'Session("cart")=null
       If IsArray(Session("cart")) = false Then
        Dim acart(19,1)  
        acart(1,0)=productid
        acart(1,1)=request.form("qty")
        Session("cart") = acart
    else


    acart=session("cart")
    incart=false
    for i=lbound(acart) to ubound(acart)
        if acart(i,0)="" and acart(i,1)="" and not(incart) then
            acart(i,0)=productid
            acart(i,1)=request.form("qty")          incart=true
        end if
    next

    session("cart")=acart
    end if
end if

Deze werkt 100% dus dat verhaal van arrays vat ik even niet :'(

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 11-09 09:22
uhm ... vaag

Verwijderd

Ik veronderstelde ook dat het kon, ik wilde een array met userrights in het sessionobject plakken. Ik redim'de een array en wilde dat in het session plaatsen maar dat ging niet door. :( Het zou me overigens niets verbazen dat het wel kan, maar alleen in JScript, dat een expliciet 'new Array()' statement kent.

Ik zal zo ff wat testcode bakken met sessions en arrays.

Verwijderd

Hmmm. Deze testcode (hack) werkt wel:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%
    Dim arrTest

    Redim arrTest(9)
    
    for i = 0 to 9
        arrTest(i) = "Item :" & i
    next

    session("arrTest") = arrTest
%>

<html><body>
<%
    arrRead = session("arrTest")
%>
Length: <%=ubound(arrRead,1)%><BR>
The array read back from the sessionobject:<br>
<%
    for i = 0 to ubound(arrRead,1)
        %>
        Item: <%=i%> = <%=arrRead(i)%><BR>
        <%
    next
%>
</body></html>

Wat ik wilde was: sValue = session("arrTest")(index), dat deed hij niet. Wat ik hierboven zei mbt arrays klopt dus niet.
Pagina: 1