Avatar billede nythjem Nybegynder
09. juli 2004 - 22:44 Der er 19 kommentarer og
1 løsning

Lille session problem?

Hej Alle!

Jeg er lige i gang med, at lave en mindre shop, og skal i den tilføje nogle produkter til en session. Jeg skal tilføje farve og størrelse til scriptet. Det har jeg også gjort, men får denne fejl:

Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number: 5]'


Hvad gør jeg galt?

Det originale script der fungerer ser sådan ud:
===============================================================
<%
    ID = Request.QueryString("a_ID")
    Items = Request.Form("Items"&ID)
    ProduktPris = Request.Form("ProduktPris"&ID)
    ProduktStoer = Request.Form("Size"&ID)
    ProduktFarve = Request.Form("Color"&ID)
    ProduktNummer = Request.Form("ProduktNummer"&ID)
    ProduktNavn = Request.Form("ProduktNavn"&ID)
    Response.Write("Session Items:" & Session("Items"))

    If isEmpty(Session("OnlineOrder")) Then
    Dim OnlineOrder(100,6)
    Session("Items") = 0
    Session("OnlineOrder") = OnlineOrder
    i = 0
    Else
    i = Session("Items")
    OnlineOrder = Session("OnlineOrder")
    End If

    If Len(ID)>0 And Len(Items)>0 Then
    If Items>0 And i <100 Then
    i = i+1
    OnlineOrder(i,0) = Items
    OnlineOrder(i,1) = ID
    OnlineOrder(i,2) = ProduktPris
    OnlineOrder(i,3) = ProduktStoer   
    OnlineOrder(i,4) = ProduktFarve
    OnlineOrder(i,5) = ProduktNummer
    OnlineOrder(i,6) = ProduktNavn
    Session("Items") = i
    Session("OnlineOrder") = OnlineOrder
    Erase OnlineOrder
%>

Min version ser sådan ud:
===============================================================
<%
    ID = Request.QueryString("a_ID")
    Items = Request.Form("Items"&ID)
    ProduktPris = Request.Form("ProduktPris"&ID)
    ProduktNummer = Request.Form("ProduktNummer"&ID)
    ProduktNavn = Request.Form("ProduktNavn"&ID)
    Response.Write("Session Items:" & Session("Items"))

    If isEmpty(Session("OnlineOrder")) Then
    Dim OnlineOrder(100,4)
    Session("Items") = 0
    Session("OnlineOrder") = OnlineOrder
    i = 0
    Else
    i = Session("Items")
    OnlineOrder = Session("OnlineOrder")
    End If

    If Len(ID)>0 And Len(Items)>0 Then
    If Items>0 And i <100 Then
    i = i+1
    OnlineOrder(i,0) = Items
    OnlineOrder(i,1) = ID
    OnlineOrder(i,2) = ProduktPris
    OnlineOrder(i,3) = ProduktNummer
    OnlineOrder(i,4) = ProduktNavn
    Session("Items") = i
    Session("OnlineOrder") = OnlineOrder
    Erase OnlineOrder
%>
Avatar billede nythjem Nybegynder
09. juli 2004 - 22:45 #1
Hov, jeg fik lige byttet om på "det originale script" respektive "min version"
Avatar billede ellebaek Nybegynder
09. juli 2004 - 22:59 #2
hmm...

Prøv at ændre denne linie fra:
Dim OnlineOrder(100,6)


til:
Dim OnlineOrder(100,10)

hvis du stadig får den fejl du havde før, så virker det ikke rigtigt din definition af arrayet..!
Avatar billede nythjem Nybegynder
09. juli 2004 - 23:12 #3
Hej Jens!

Tak fordi du gider hjælpe :)

Det hjælper desværre ikke.. Stadig den samme fejlmeddelelse..
Avatar billede ellebaek Nybegynder
09. juli 2004 - 23:15 #4
hmm...

Det var da noget træls...
Mærkeligt når det virker på den anden måde...

får du et linienummer til din fejl..?
Avatar billede nythjem Nybegynder
09. juli 2004 - 23:21 #5
:) Ja meget. Havde også selv lige håbet på, at det skulle være lige til ;)

Her er hele min side. Linie fejlen får jeg på linie 51

#################################################

<%
Response.AddHeader "cache-control","private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "no-cache"
Response.CacheControl = "private"
Response.Expires = -1
Response.ExpiresAbsolute = Now() -1
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>

    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="expires" content="-1">
    <meta http-equiv="pragma" content="no-cache">
    <meta name="author" content="">
    <meta name="description" content="">
    <meta name="keywords" content="">

</head>

<body onLoad="if ('Navigator' == navigator.appName) document.forms[0].reset();">
<%
    ID = Request.QueryString("a_ID")
    Items = Request.Form("Items"&ID)
    ProduktPris = Request.Form("ProduktPris"&ID)
    ProduktNummer = Request.Form("ProduktNummer"&ID)
    ProduktNavn = Request.Form("ProduktNavn"&ID)
    ProduktStorrelse = Request.Form("Stoer"&ID)
    ProduktFarven = Request.Form("Farven"&ID)
    Response.Write("Session Items:" & Session("Items"))

    If isEmpty(Session("OnlineOrder")) Then
    Dim OnlineOrder(100,20)
    Session("Items") = 0
    Session("OnlineOrder") = OnlineOrder
    i = 0
    Else
    i = Session("Items")
    OnlineOrder = Session("OnlineOrder")
    End If

    If Len(ID)>0 And Len(Items)>0 Then
    If Items>0 And i <100 Then
    i = i+1
    OnlineOrder(i,0) = Items
    OnlineOrder(i,1) = ID
    OnlineOrder(i,2) = ProduktPris
    OnlineOrder(i,3) = ProduktNummer
    OnlineOrder(i,4) = ProduktNavn
    OnlineOrder(i,5) = ProduktStorrelse
    OnlineOrder(i,6) = ProduktFarven
    Session("Items") = i
    Session("OnlineOrder") = OnlineOrder
    Erase OnlineOrder
%>

<%
Session.Timeout = 240
%>


<%
    End If
    End If

    Response.Redirect ("/site" & Request.Querystring("design") & ".asp?Link=" & Request.Querystring("Link") & "&Item=" & Request.Querystring("Item") & "&Product=" & Request.Querystring("Product") & "")
%>
</body>
<head>
    <meta http-equiv="expires" content="-1">
    <meta http-equiv="pragma" content="no-cache">
</head>
</html>
Avatar billede nythjem Nybegynder
09. juli 2004 - 23:22 #6
Hvor uhøfligt.. Linie 51 er denne..

    OnlineOrder(i,5) = ProduktStorrelse
Avatar billede ellebaek Nybegynder
09. juli 2004 - 23:22 #7
hmm...

mystisk..
prøv lige:

<%
Response.AddHeader "cache-control","private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "no-cache"
Response.CacheControl = "private"
Response.Expires = -1
Response.ExpiresAbsolute = Now() -1
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>

    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="expires" content="-1">
    <meta http-equiv="pragma" content="no-cache">
    <meta name="author" content="">
    <meta name="description" content="">
    <meta name="keywords" content="">

</head>

<body onLoad="if ('Navigator' == navigator.appName) document.forms[0].reset();">
<%
    ID = Request.QueryString("a_ID")
    Items = Request.Form("Items"&ID)
    ProduktPris = Request.Form("ProduktPris"&ID)
    ProduktNummer = Request.Form("ProduktNummer"&ID)
    ProduktNavn = Request.Form("ProduktNavn"&ID)
    ProduktStorrelse = Request.Form("Stoer"&ID)
    ProduktFarven = Request.Form("Farven"&ID)
    Response.Write("Session Items:" & Session("Items"))

    If isEmpty(Session("OnlineOrder")) Then
    Dim OnlineOrder(100,20)
    Session("Items") = 0
    Session("OnlineOrder") = OnlineOrder
    i = 0
    Else
    i = Session("Items")
    OnlineOrder = Session("OnlineOrder")
    End If

    If Len(ID)>0 And Len(Items)>0 Then
    If Items>0 And i <100 Then
    i = i+1
    OnlineOrder(i,0) = Items
    OnlineOrder(i,1) = ID
    OnlineOrder(i,2) = ProduktPris
    OnlineOrder(i,3) = ProduktNummer
    OnlineOrder(i,4) = ProduktNavn
    'OnlineOrder(i,5) = ProduktStorrelse
    OnlineOrder(i,6) = ProduktFarven
    Session("Items") = i
    Session("OnlineOrder") = OnlineOrder
    Erase OnlineOrder
%>

<%
Session.Timeout = 240
%>


<%
    End If
    End If

    Response.Redirect ("/site" & Request.Querystring("design") & ".asp?Link=" & Request.Querystring("Link") & "&Item=" & Request.Querystring("Item") & "&Product=" & Request.Querystring("Product") & "")
%>
</body>
<head>
    <meta http-equiv="expires" content="-1">
    <meta http-equiv="pragma" content="no-cache">
</head>
</html>
Avatar billede ellebaek Nybegynder
09. juli 2004 - 23:23 #8
ja, det lurede jeg :-)
Avatar billede nythjem Nybegynder
09. juli 2004 - 23:28 #9
:)

Ja, så siger det jo så givet vis fejl i 6´eren.. :)

Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number: 6]'

/popup/add_product.asp, line 52
Avatar billede ellebaek Nybegynder
09. juli 2004 - 23:30 #10
<%
Response.AddHeader "cache-control","private"
Response.AddHeader "pragma","no-cache"
Response.CacheControl = "no-cache"
Response.CacheControl = "private"
Response.Expires = -1
Response.ExpiresAbsolute = Now() -1
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>

    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="expires" content="-1">
    <meta http-equiv="pragma" content="no-cache">
    <meta name="author" content="">
    <meta name="description" content="">
    <meta name="keywords" content="">

</head>

<body onLoad="if ('Navigator' == navigator.appName) document.forms[0].reset();">
<%
    ID = Request.QueryString("a_ID")
    Items = Request.Form("Items"&ID)
    ProduktPris = Request.Form("ProduktPris"&ID)
    ProduktNummer = Request.Form("ProduktNummer"&ID)
    ProduktNavn = Request.Form("ProduktNavn"&ID)
    ProduktStorrelse = Request.Form("Stoer"&ID)
    ProduktFarven = Request.Form("Farven"&ID)
    Response.Write("Session Items:" & Session("Items"))
Dim OnlineOrder(100,20)

    If isEmpty(Session("OnlineOrder")) Then
        Session("Items") = 0
    Session("OnlineOrder") = OnlineOrder
    i = 0
    Else
    i = Session("Items")
    OnlineOrder = Session("OnlineOrder")
    End If

    If Len(ID)>0 And Len(Items)>0 Then
    If Items>0 And i <100 Then
    i = i+1
    OnlineOrder(i,0) = Items
    OnlineOrder(i,1) = ID
    OnlineOrder(i,2) = ProduktPris
    OnlineOrder(i,3) = ProduktNummer
    OnlineOrder(i,4) = ProduktNavn
    OnlineOrder(i,5) = ProduktStorrelse
    OnlineOrder(i,6) = ProduktFarven
    Session("Items") = i
    Session("OnlineOrder") = OnlineOrder
    Erase OnlineOrder
%>

<%
Session.Timeout = 240
%>


<%
    End If
    End If

    Response.Redirect ("/site" & Request.Querystring("design") & ".asp?Link=" & Request.Querystring("Link") & "&Item=" & Request.Querystring("Item") & "&Product=" & Request.Querystring("Product") & "")
%>
</body>
<head>
    <meta http-equiv="expires" content="-1">
    <meta http-equiv="pragma" content="no-cache">
</head>
</html>

vi prøver lige noget...
prøv ovenstående..!
Avatar billede nythjem Nybegynder
09. juli 2004 - 23:36 #11
Hmm.. Så får jeg den her fejl..

Microsoft VBScript runtime error '800a000d'

Type mismatch

/popup/add_product.asp, line 40
Avatar billede ellebaek Nybegynder
09. juli 2004 - 23:36 #12
hvad er linie 40..?
Avatar billede nythjem Nybegynder
09. juli 2004 - 23:39 #13
OnlineOrder = Session("OnlineOrder")
Avatar billede ellebaek Nybegynder
09. juli 2004 - 23:45 #14
prøv at udkommentere den linie...
Skal lige prøve hvor du definere sessionen forfra..

Men bliver nødt til at hoppe i seng nu..
Kigger til dig i morgen :-)
Sov godt, når du har kæmpet færdigt...!
Avatar billede nythjem Nybegynder
09. juli 2004 - 23:47 #15
Tak skal du have :)

Og sov du godt :)
Avatar billede nythjem Nybegynder
09. juli 2004 - 23:56 #16
Jeg prøvede at udkommentere sætningen med

'    OnlineOrder = Session("OnlineOrder")

Og så virkede den. Imidlertid bliver der så desværre ikke tilføjet andet en ét produkt :)
Avatar billede nythjem Nybegynder
10. juli 2004 - 12:15 #17
Hej Jens!

Har du evt. drømt om en løsning på problemet :)
Avatar billede nythjem Nybegynder
10. juli 2004 - 13:09 #18
Hej Jens!

Har fået det til at virke..

Det skyldes desværre, at jeg sov lidt i går, og ikke havde regnet ud, at add delen hænger sammen med hoved delen..

Men endnu engang tak fordi du gad, at kigge lidt på det.. Håber du gider ligge et svar :)

God weekend fra Michael
Avatar billede ellebaek Nybegynder
10. juli 2004 - 13:50 #19
hey champ...

Er nærmest først lige stået op, men super at du fik det til at virke..
Jeg smider et svar her :-)
Avatar billede lslu Nybegynder
12. august 2005 - 13:43 #20
Hej
Jeg har samme problem, men har ikke fundet løsningen endnu, kan du hjælpe mig ?

Mvh.
Lars
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
Kategori
Kurser inden for grundlæggende programmering

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