10. oktober 2003 - 23:47
Der er
25 kommentarer og 1 løsning
funktionen skrivtid virker ikke
hej, det er meningen at når man forlader siden skal der beregnes hvor lang tid der er brugt på siden, her skal det så bare vises Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("System.mdb") Conn.Open DSN strSQL = "Select * From Brugere Where bruger = '" & session("bruger") & "'" Set rs = Conn.Execute(strSQL) tidon = rs("Onlinetid") tidtal = cint(tidon) / cint(60) tidtal = split(tidon, ",") if tidtal(1) = 0 then tidtal(1) = tidtal(1) & "0" end if Response.Write "du er logget ind som: " & session("bruger") Response.Write "<br>du er i level <b>" & rs("level") & "</b><br>" Response.Write "du har været online i: " & tidtal(0) & " timer og " & tidtal(1) & " minutter" end if jeg får denne fejl: Microsoft VBScript runtime (0x800A0009) Subscript out of range: '[number: 1]' i linjen> timer og " & tidtal(1) & " minutter"
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
10. oktober 2003 - 23:51
#1
undskyld i linjen if tidtal(1) = 0 then
11. oktober 2003 - 00:03
#2
formentligt fordi dit split ikke giver nogle resultater - og så vil du ikke kunne efterspørge tidtal(1)
11. oktober 2003 - 00:09
#3
jamen, hvordan gir jeg det så en værdi?
11. oktober 2003 - 00:13
#4
hvis tidtal er tom eller ikke indeholder et "," vil du altid få fejlen - så du kunne fx tjecke for om tegnet "," i det hele taget var en del af tidtal før du splittede
11. oktober 2003 - 00:16
#5
jep men hvad siger jeg så? if NOT tidtal LIKE "%,%" duer ikke
11. oktober 2003 - 00:18
#6
If instr(tidtal,",") <> 0
11. oktober 2003 - 00:20
#7
... jeg forstår ikke kan du ikke forklare mig mere ?
11. oktober 2003 - 00:22
#8
If instr(tidtal,",") <> 0 Then 'lav dit split 'lav dine to variabler End If
11. oktober 2003 - 00:27
#9
hvad så hvis der er , ?
11. oktober 2003 - 00:31
#10
hold kæft et rodet script findes der ikke en lettere måde at regne tal ud på den det der?
11. oktober 2003 - 00:39
#11
hvis der er , med i så den den dit split samt du får "adgang" til at lave tidtal(0) og tidtal(1) om til variabler du så senere kan bruge... om der findes lettere måde? jo - jeg ville nok gemme tiden i en session og derefter benytte funktionen DateDiff til at finde forskellen mellem logintidspunktet og nu
11. oktober 2003 - 00:41
#12
det er prævist hvad der foregår i logud filen, men ligenu skal brugeren se onlinetiden i info
11. oktober 2003 - 00:55
#13
jeg kan hverken se en session med tiden eller en datediff-funktion? men det er også lige meget - hvis du benytter min if-sætning så vil du kunne undgå den fejl du kommer ud i fordi der ikke er , i din variabel tidtal
11. oktober 2003 - 01:02
#14
du får lige hele koden som den ser ud nu: Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("System.mdb") Conn.Open DSN strSQL = "Select * From Brugere Where bruger = '" & session("bruger") & "'" Set rs = Conn.Execute(strSQL) tidon = rs("Onlinetid") tidon = cint(tidon) / cint(60) tidtal = split(tidon, ",") tid0 = tidtal(0) tid1 = tidtal(1) tid1 = left(tid1,2) Response.Write "du er logget ind som: " & session("bruger") Response.Write "<br>du er i level <b>" & rs("level") & "</b><br>" Response.Write "du har været online i: " & tid0 & " timer og " & tid1 & " minutter"
11. oktober 2003 - 01:03
#15
og logud koden: tid = (DateDiff("n",session("sidstlog"),Now)) tidtal = cint((DateDiff("n",session("sidstlog"),Now))) / cint(60) tidtal = split(tidtal, ",") tid1 = Left(tidtal(1),2) Response.Write "Du er nu logget af " & session("bruger") & ", du var på i: " & tidtal(0) & " timer og " & tid1 & " minutter" Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("System.mdb") Conn.Open DSN strSQL = "Select * From Brugere Where Bruger = '" & session("bruger") & "'" set rs = Conn.Execute (strSQL) strOn = rs("Onlinetid") strSQL = "Update Brugere set " strSQL = strSQL & "Onlinetid= '" & cint(strOn) + cint(tid) & "' " strSQL = strSQL & " Where Bruger = '" & session("bruger") & "'" Conn.Execute strSQL Session.Abandon jeg er virkelig på herrens mark og sætter gerne nogen flere point af hvis det hjælper tankevirksomheden hos nogen =)
11. oktober 2003 - 01:10
#16
Hvad sker der hvis du bruger nedenstående... strSQL = "Select * From Brugere Where bruger = '" & session("bruger") & "'" Set rs = Conn.Execute(strSQL) tidon = rs("Onlinetid") tidon = cint(tidon) / cint(60) If instr(tidon,",") <> 0 Then tidtal = split(tidon, ",") tid0 = tidtal(0) tid1 = tidtal(1) tid1 = left(tid1,2) End If
11. oktober 2003 - 01:14
#17
jeg ved virkelig ikk hvad jeg har lavet, tror jeg må begybnde helt forfra INTET af det der sker giver for mig nogen som helst mening...!
11. oktober 2003 - 01:39
#18
jeg kan desværre ikke hjælpe mere når jeg ikke ved hvordan mit forslag virker eller ikke virker...
11. oktober 2003 - 16:22
#19
jeg ved ikke hvad jeg skal sige :P jeg har bare enormt meget brug for en der kan hjælpe mig med en funktion der logger onlinetid på en side
11. oktober 2003 - 16:32
#20
har du i det hele taget prøvet mit forslag?
12. oktober 2003 - 10:00
#21
ja
12. oktober 2003 - 10:06
#22
godt - og hvad sker der eller sker der ikke når du forsøger?
12. oktober 2003 - 18:38
#23
præcis hvad der skete ved det andet
12. oktober 2003 - 18:44
#24
Du skal selvfølgelig også indsætte de to variabler jeg danner i min if-sætning - så linien skal i stedet se sådan ud; Response.Write "du har været online i: " & tidtal0 & " timer og " & tidtal1 & " minutter" problemet er bare, at hvis if-sætningen ikke bliver kørt dannes de to varibler og så står der bare; du har været online i: timer og minutter men så må du lave et tjeck et andet sted for om de nye variabler eksisterer eller ej... men prøv det først og se hvad der så sker
13. oktober 2003 - 09:27
#25
keyser jeg fik lavet noget og jeg henviser derfor til et problem i forbindelse med det til adressen:
http://www.eksperten.dk/spm/413058 tusind tak
14. oktober 2003 - 13:06
#26
lukker
Kurser inden for grundlæggende programmering