06. august 2004 - 12:14Der er
42 kommentarer og 3 løsninger
Hits på downloadning
Hej Steiner Hvordan kan jeg styre at counteren kun tæller f.eks 1 gang i døgnet? Hvad skal jeg i øvrigt skrive hvis, jeg vil have hits på f.eks downloadning af pdf filer fra mine sider? Mvh. Marie
Sub hentfil(id, fil) Set ThisForm=Document.formular ThisForm.a.Value="download" ThisForm.fil.value=fil ThisForm.id.Value=id ThisForm.Submit End Sub !-->
</SCRIPT>
</HEAD> <BODY> <% Function GetInput(i) GetInput="" if i<>"" then GetInput=Request.QueryString(i) if GetInput="" or IsNull(GetInput) then GetInput=Request.Form(i) end if End Function
a=Trim(GetInput("a")): 'Response.Write("a=" & a & "<BR>") if a="" or IsNull(a) Then a="liste"
Select Case LCase(a) case "download" Response.Write("Filnavn: " & Request.Form("fil") & "<br/>")
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("./filer.mdb") strSQL = "UPDATE filer SET hits=hits+1 WHERE id=" + Request.Form("id") 'set rs = Conn.execute(strSQL) 'rs.close Set rs = nothing Conn.Close Set Conn = Nothing
Hej steines Jeg har prøvet. Så vidt jeg kan se skal jeg bare skifte fil navne 3 steder: ACTION og 2 steder, hvor databasen er nævnt. Er det ikke rigtigt? Men jeg bliver ved med, at få denne fejlmelding: Microsoft OLE DB Provider for ODBC Drivers error '80040e37'
[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot find the input table or query 'filer'. Make sure it exists and that its name is spelled correctly.
Du skal oprette en tabel der hedder filer som jeg skrev i mit indlæg ;o) Desuden har jeg kaldt min database for filer.mdb. Hvis du har oprettet tabellen i en allerede eksisterende base, skal du angive basens navn i linien:
Det har jeg gjort. Siden ser også rigtig ud (blank), men der kommer ingen oplysninger ind i databasen. Det script du har givet mig skal vel ligge på en side der hedder dl.asp, ikke? Mvh. Marie
Puhaa, den er svær her i sommer varmen. Jeg kan godt se fidusen, men når jeg klikker på hent klan den ikke finde siden og den henter ikke oplysningen ind i databasen. Det er sikkert mig, der giver den et forkert navn. Kan vi få det sidste på¨plads i morgen? Jeg er nemlig nød til, at gå nu. Mvh. Marie
Kig på denne linie. './download_dir/" er bare et directory jeg har opfundet. Der skal selvfølgelig stå det directorynavn hvor du har dine filer liggende i.
Hej steines Jeg kan stadig ikke få det til, at virke. Browser vinduet kan ikke finde siden. Det er sikkert mig der giver den en forkert stivej, men lad os nu sige, at man skal hente pdf filen fra en mappe der hedder downloads og en undermappe der hedder pdf, hvordan angiver jeg den stivej? Mvh. Marie
Jeg tror ikke der er noget galt med databasen. dl.asp lå i en mappe sammen med fil.mdb. Det har virket, så nu får jeg pdf filen frem, men den tæller ikke hits. Den åbner bare pdf filen hvor efter man kan gemme en kopi. Mvh. Marie
Nemlig. Jeg glemte lige, at nævne: jeg flyttede dl.asp uden for mappen før den virkede, men jeg kan jo ikke flytte databsen med, den skal ligge i mappen med skriverettigheder. Mvh. Marie
Jeg er imponeret! Nu må du ikke rive håret ud af hovedet (pointene er dine), men er der en nemmere måde, at gøre det på, når jeg har eksisterende sider i forvejen med link til alle pdf filer ?
har rettet i scriptet dl.asp, så nu henter viser den alle filerne i dit pdf-dir, og automatisk tilføjer dem i basen hvis det er nødvendigt, og elelr bliver hits = hits + 1.
Sub hentfil(fil) Set ThisForm=Document.formular ThisForm.a.Value="download" ThisForm.fil.value=fil ThisForm.Submit End Sub !-->
</SCRIPT>
</HEAD>
<% Function GetInput(i) GetInput="" if i<>"" then GetInput=Request.QueryString(i) if GetInput="" or IsNull(GetInput) then GetInput=Request.Form(i) end if End Function
a=Trim(GetInput("a")): 'Response.Write("a=" & a & "<BR>") if a="" or IsNull(a) Then a="liste"
Select Case LCase(a) case "download"
Set Conn = Server.CreateObject("ADODB.Connection") 'Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("./filer.mdb")
strSQL = "SELECT * FROM filer WHERE fil='" + Request.Form("fil") + "'"
maxcount = 0 set rs = Conn.execute(strSQL) while not rs.eof maxcount = maxcount + 1 rs.movenext wend if (maxcount = 1) Then strSQL = "UPDATE filer SET hits=hits+1 WHERE fil='" & Request.Form("fil") & "'" set rs = Conn.execute(strSQL) elseif (maxcount = 0) Then strSQL = "INSERT INTO filer (fil, hits) VALUES ('" & Request.Form("fil") & "',1)" set rs = Conn.execute(strSQL) end if
Dim objFileScripting, objFolder Dim filename, filecollection, strDirectoryPath, strUrlPath strDirectoryPath="c:\inetpub\scripts\" strUrlPath="\scripts\"
Set objFileScripting = CreateObject("Scripting.FileSystemObject") Set objFolder = objFileScripting.GetFolder(Request.ServerVariables("APPL_PHYSICAL_PATH") & "\downloads\pdf\") Set filecollection = objFolder.Files
Må jeg spørge dig om en sidste ting? Vi snakkede om hvordan man undgår at folks hit kommer med mange gange lige efter hinanden. Jeg kunne f.eks tænke mig, at der skulle gå en time. 1 gang i døgnet er for lidt. Hvad skriver jeg der? Hvordan får jeg i øvrigt fat i dig, hvis jeg har brug for dig en anden gang? Mvh. Marie
Ok, skal jeg sende dig spørgsmålet om kun et hit pr. bruger pr. time eller vil du hellere svare her?
Synes godt om
Ny brugerNybegynder
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.