Avatar billede kotelet Nybegynder
05. juni 2001 - 12:28 Der er 4 kommentarer og
1 løsning

Logbog over nye poster

Hej

Jeg programmerer i ASP og vil gerne have et script, som kan skrive en logbog eller liste over de seneste nye \'entries\' ude fra nettet, i min database.

Dvs. Når folk udefra går ind på min side og skriver deres data ind i min database, så vil jeg gerne have, at der automatisk bliver skrevet ind i en liste hvad der er blevet lagt ind.
Avatar billede tknudsen Nybegynder
06. juni 2001 - 16:30 #1
Jeg har selv lavet noget lignende. Jeg har på en IIS 5.0 lavet noget asp, som går ned og scan\'er log filerne efter requests på min default.asp side.

Det skal lige siges at IIS faktisk kan logge direkte til en odbc data source, jeg kunne bare ikke få det til at virke.

Hvis du bruger IIS kan jeg hjælpe dig...

Følgende returnerer antallet af requests på parameteren uniqueURL siden dt:

function getConnSinceDate(uniqueURL,dt)
    dim count,i
   
    count = 0

    for i = 0 to DateDiff(\"d\",dt,now)
        count = count + getConnOnDate(uniqueURL,now-i)
    next
   
    getConnSinceDate = count
end function

function getConnOnDate(uniqueURL,dt)
    dim logFile,logStr,csvData,count
   
    count = 0
    logFile = \"c:\\WINNT\\system32\\LogFiles\\W3SVC1\\\" & getLogFileName(dt-1/24)\' minus one hour to get time in local time

\'    Response.Write logFile & \"<br>\"

    dim objFile,objFSO,i
    set objFSO = CreateObject(\"Scripting.FileSystemObject\")
   
    if objFSO.FileExists(logFile) then

        set objFile = objFSO.OpenTextFile(logFile,1,false,0)
   
          do while objFile.AtEndOfStream <> true
            logStr = objFile.ReadLine
           
            if Mid(logStr,1,1) <> \"#\" And Len(logStr) <> 0 then
                csvData = Split(logStr)
                for each i In csvData
                    if UCase(i) = UCase(uniqueURL) then
                        count = count+1
                    end if
                next
            end if
        loop

        objFile.Close
       
    end if

    getConnOnDate = count
end function   

function getLogFileName(dt)
dim y,m,d

    if Day(dt) < 10 then
        d = \"0\" & Day(dt)
    else
        d = Day(dt)
    end if
   
    if Month(dt) < 10 then
        m = \"0\" & Month(dt)
    else
        m = Month(dt)
    end if

    y = Mid(CStr(Year(dt)),3,2)

    getLogFileName = \"ex\" & y & m & d & \".log\"
end function
Avatar billede tknudsen Nybegynder
06. juni 2001 - 16:31 #2
sføli er det rimlig omsonst hvis du kan få din webserver til at logge direkte i en tabel istedet for W3SVC1-log filerne
Avatar billede kotelet Nybegynder
26. august 2001 - 14:53 #3
Arrrghhh ... Jeg anede ikke at det var så beværligt ... Hmmm ... Hvis du ikke har noget i mod det, så vil jeg lade dette spørgsmål stå i noget længere tid, indtil det VIRKELIG bliver nødvendigt...

Hvis det virker til den tid, får du se\'føl\'i \'alle\' pointene..

Tak

/Kotelet
Avatar billede kotelet Nybegynder
29. april 2002 - 00:43 #4
Jeg kan slet ikke overskue det nu. Jeg siger tak og satser på at det er et rigtigt svar :-) .. Så giv et svar, så får du dine point.

/Kotelet
Avatar billede kotelet Nybegynder
02. maj 2002 - 13:40 #5
Jeg lukker her. Hvis du føler at du bør krav på dine point, så kontakt mig for at oprette et ny spm til dig med dem.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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