Avatar billede musicchart.dk Nybegynder
09. juni 2002 - 11:57 Der er 13 kommentarer og
1 løsning

sql problemer

Hey
Jeg har lavet dette, men det virker ikke, der kommer ikke nogen fejl, men der bliver bare ikke skrevet noget i databasen!
Den skal fungere sådan at, når man åbner et browser vindue så skal brugerens ip gemmes i en Access database, og når brugeren så forlader/lukker browser vinduet, skal hans ip slettes fra databasen...

!!!Er der ikke nogen der kan hjælpe, jeg er ved at blive meget desperat!!!


<SCRIPT RUNAT=Server Language=VBScript>
Sub Session_OnStart

Application("Conn") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Inetpub\wwwroot\mypage\realthing\db\db.mdb;"
   

strIP = Request.ServerVariables("REMOTE_ADDR")
strBROW = Request.ServerVariables("HTTP_USER_AGENT")

sql = "INSERT INTO brugerinfo (ip, browser) VALUES("' & strIP & '", "' & strBROW & '")"

conn.execute(sql)
Conn.Close
Set Conn = Nothing
   
End Sub


SUB Session_OnEnd

Application("Conn") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:Inetpubwwwrootmypagerealthingdbdb.mdb;"

sql = "DELETE brugerinfo WHERE ip = strIP"

conn.execute(sql)
Conn.Close
Set Conn = Nothing
END SUB

</SCRIPT>


Hvis der er nogen der har forslag til hvordan dette ellers kan gøres, så lytter jeg ører.


/Bjarke - (KLEIFDESIGN)
Avatar billede eagleeye Praktikant
09. juni 2002 - 12:32 #1
din SQL skal være:

sql = "DELETE brugerinfo WHERE ip = '" & strIP & "'"
Avatar billede musicchart.dk Nybegynder
09. juni 2002 - 12:57 #2
<< eagleeye , jo men det er hvor den skal sette fra DB'en... det nytter jo ikke noget, nr den ikke engang skriver i den ;o)...
Avatar billede musicchart.dk Nybegynder
09. juni 2002 - 12:58 #3
Application("Conn")  , skal jeg så have en application installeret på serveren?
Avatar billede tmceu Praktikant
09. juni 2002 - 15:33 #4
eagleeye >> jeg ville sætte en FROM ind også :-)

sql = "DELETE FROM brugerinfo WHERE ip = '" & strIP & "'"

Jeg mener at det reelle problem her er, at det af "en eller anden" årsag, ikke er muligt at skrive i en Access database fra Session_OnEnd. Jeg har tidligere deltaget i lignende spørgsmål her E samt i div. newsgroups og har aldrig hørt om nogen der har fået det til at virke.

Jeg lavede på baggrund af nogle af disse debatter, min egen uvidenskabelige test. Der er ingen problemer (*) med MySQL og SQL Server fra Session_OnEnd, men Access virkede aldrig. Access er filbaseret, mens de andre er ægte databaser, men om dette er den reelle årsag ved jeg ikke. Min konstatering baseret på al det nævnte er, at du kan glemme alt om at opdatere en Access database i Session_OnEnd.

(*) Der er generelt et problem med Session_OnEnd i IIS4, der betyder at Session_OnEnd kun kører i ca. 95-97% af alle tilfælde, hvor der ikke eksplicit laves en Session.Abandon, dvs. ved timeout på sessionen. Dette skulle efter sigende være løst i IIS5 og jeg har endnu ikke oplevet at det ikke skulle være løst.
Avatar billede tmceu Praktikant
09. juni 2002 - 15:34 #5
Application("Conn") er blot en sessionsvariabel - og du skal ikke have noget installeret på serveren til dette.
Avatar billede musicchart.dk Nybegynder
09. juni 2002 - 18:06 #6
tak << tmceu >> , men har du ikke et andet forslag til hvordan jeg kan løse mit problem?
Avatar billede tmceu Praktikant
09. juni 2002 - 21:29 #7
Et andet forslag end hvad ? Jeg hævder at det ikke virker med Access og hvis du stadig vil bruge en database, er den eneste mulighed at skifte database. Er du villig til det og i så fald, hvilket webhotel bruger du ?
Avatar billede musicchart.dk Nybegynder
09. juni 2002 - 22:35 #8
hmmm... kan ikke bruge en anden database, eller ved ikke hvordan. Jeg bruger ikke noget webhotel, men bruger en vens server.
Da jeg spurgte om et andet forslag, mente jeg om der var en anden  mulighed for at løre min problem.
Det jeg skal er at brugerens ip skal tilføjes til en database, når han åbner siden, og så når brugeren forlader siden, eller evt. lave en timeout, så skal brugeren ip slettes igen.
Avatar billede gigaload Nybegynder
09. juni 2002 - 22:47 #9
hvis du nu navnegav stien til databasen rigtigt...

du har skrevet : c:Inetpubwwwrootmypagerealthingdbdb.mdb

prøv med : c:Inetpub\wwwroot\mypage\realthing\db\db.mdb

(nu ved jeg ikke om jeg har inddelt den i de rigtige mapper, men du skal jo huske at den ligge i en mappe, og at det ikke bare er et langt fil navn...)
Avatar billede musicchart.dk Nybegynder
09. juni 2002 - 22:54 #10
<< gigaload  , det er eksperten der ikke skriver mine "\"...
Avatar billede tmceu Praktikant
09. juni 2002 - 22:55 #11
gigaload >> det er næppe problemet her :-) Eksperten fjerner i nogle situationer aut. backslash når man poster kode, i andre situationer ikke. Nogle er begyndt bevidst at erstatte dem med forward slash for visualiseringens skyld.
Avatar billede tmceu Praktikant
09. juni 2002 - 22:59 #12
En altenativ mulighed kunne være, at ligge ip adresserne i applikationsvariabler. Disse er dog best egne til forholdsvis statiske data, men få opdateringer. Hvor mange brugere har du og hvad vil besøgsfrekvensen være ?
Avatar billede musicchart.dk Nybegynder
09. juni 2002 - 23:05 #13
ca. 10 - 30 brugere om dagen
Avatar billede musicchart.dk Nybegynder
02. juli 2002 - 15:10 #14
/lukker -
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