20. maj 2002 - 21:30Der er
30 kommentarer og 2 løsninger
Tæller med database !
Jeg har prøvet at finde en asp-tæller der bruger en database fremfor en txt-fil, men jeg har ikke kunnet finde en jeg forstod. Er der ikke en der kan hjælpe med at vise mig den mest simple tæller, der læser tallet fra databasen (mdb) og lægger en til, inden den putter det i en variabel og gemmer det igen. Du bliver også nødt til at hjælpe mig med hvad, der skal være i databasen (der skal vel være et navn og en værdi ?!?)
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Så lave du en database som hedde "counter", med en tabel som også hedder "counter". I den tabel har du et felt som hedder "antal" som er af typen tal. Så skulle det virke.
<!-- METADATA TYPE="typelib" FILE="C:\Program Files\Common Files\System\ado\msado15.dll" --> <% 'Option Explicit Dim objRS, strConn, Antal If (Session("Antal") = "") Then strConn ="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("counter.mdb") Set objRS = Server.CreateObject("ADODB.RecordSet") objRS.Open "SELECT * FROM counter", strConn, adOpenDynamic, adLockOptimistic, adCmdText objRS("Antal") = objRS("Antal") + 1 objRS.Update Session("Antal") = objRS("Antal") objRS.Close Set objRS = Nothing End If %>
...her skal du så selvfølgelig ha' en tabel der hedder tblTaeller, samt et talfelt i tabellen der hedder taellerfelt.
...og så læste jeg selvfølgelig ikke lige spørgsmålet godt nok - glemte "læse" delen, sorry.
set conn = server.createobject("adodb.connection") conn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("databasen.mdb") conn.execute("UPDATE tblTaeller SET taellerfelt = taellerfelt + 1") set rs = conn.execute("SELECT taellerfelt FROM tblTaeller") if not rs.eof then Taeller = rs("taellerfelt") conn.close set rs = nothing set conn = nothing
response.write(Taeller)
Synes godt om
Slettet bruger
20. maj 2002 - 21:37#5
ellers kan der hentes en fra www.questis.dk under elementer -> counter
Questis>> Tak for linket og den "færdige fil", men der er et problem. Når jeg bruger den, beder browseren om adgangskode til min computer. Det gør den Poll jeg har gang i ikke ?!?!?
(P.S: I din zipfil hedder den coun.asp , ikke count.asp, er det meningen ?? (((O;)
Questis>> Den bliver ved med det adgangskode skrammel. Jeg har givet skriveadgang i det bibl, ellers ville poll/stem jo ikke du !?
Synes godt om
Slettet bruger
20. maj 2002 - 22:11#14
gør den det, når du er inde på min side ? og tjekker eksemplet oxo ? i såfald er det din comp. der er sat op til at ville havde det, og ikke mit script. da der ikke er nogen former for brug af din comp. andet end at den registerer din ip......
Nå ok . Havde ikke lige set at den læste ip-adressen, og derfor kun tæller første gang. Men det er jeg ikke interesseret i. Den skal bare tælle, uanset hvad.
Synes godt om
Slettet bruger
20. maj 2002 - 22:24#17
ok, men kan da hurtigt flægge en sammen til dig jeg kan sende, men vil ikke hvis du vælgere at bruge den anden, da det sp ville være spildt arbejde.
Jeg har prøvet alle jeres scripts, men kan ikke få det til at virke. Kimiwan>> Jeg har blot lavet det du skrev til en side sådan her:
<% set conn = server.createobject("adodb.connection") conn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("databasen.mdb") conn.execute("UPDATE tblTaeller SET taellerfelt = taellerfelt + 1") set rs = conn.execute("SELECT taellerfelt FROM tblTaeller") if not rs.eof then Taeller = rs("taellerfelt") conn.close set rs = nothing set conn = nothing
response.write(Taeller) %> Du er nr:<%=Taeller%> Her
Og lavet databasen som beskrevet, men den skriver bare. Du er nr:Her
jnissen>> Fejltype: Active Server Pages, ASP 0224 (0x80004005) Kan ikke indlæse de typebiblioteker, der er specificeret i METADATA-programkoderne. /legendarisk/counter.asp, line 1
jeg er nummer 27-123 Hvis du vil undgå man kan trykke på reload så kan du lave en session variable som sikre man kun tæller op en hvis man alså ikke stater en ny browser eller slår Session/cookies fra i browseren.
<% set conn = server.createobject("adodb.connection") conn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("databasen.mdb") if session("kunenprsession") = "" then conn.execute("UPDATE tblTaeller SET taellerfelt = taellerfelt + 1") session("kunenprsession") = "1" end if set rs = conn.execute("SELECT taellerfelt FROM tblTaeller") if not rs.eof then Taeller = rs("taellerfelt") conn.close set rs = nothing set conn = nothing
response.write(Taeller) %> Du er nr:<%=Taeller%> Her
Ja den er mere rigitg for antal besøgne hvis du skire mod reload/refresh knap "misbrug".
Men du bestemmer hvad din counter skal vise. Det var for at vise, at du havde den mulighed for "sikring" :)
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.