webForumDet fria alternativet

Besöksräknare

ASP

13 svar · 718 visningar · startad av Vickan

Medlem sedan maj 200326 inlägg
Frågan#1

Hejsan!

Finns det någon som kan hjälpa mig?

Jag undrar hur man gör en egen besöksräknare i asp. Och hur gör jag för att den dessutom ska vara gömd?

Mvh/Vickan

Medlem sedan nov. 20014 054 inlägg
#2

Har du några kunskaper i ASP alls?

Ifall det bara är någon liten kodsnutt du behöver eller en hel applikation! :q

Mvh Fredde Mannen

Medlem sedan juli 2003162 inlägg
#3

Du kan göra en databas räknare...
....som automatiskt uppdateras varje gång någon uppdaterar sidan.
Exempel:
https://www.rubensoft.nu/LWSWE

dim Conn, RecSet, AntalBesokTotalt, SQL
	Set Conn = Server.CreateObject("ADODB.Connection")
		Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/raknare.mdb")
	Set RecSet = Server.CreateObject("ADODB.Recordset")
			SQL = "SELECT * FROM AntalBesok" 
		RecSet.Open SQL, Conn, 3, 3
			

				RecSet("Antal") = RecSet("Antal") + 1 
			RecSet.Update		
			
			
		RecSet.Close
	Set RecSet = Nothing
		Conn.Close
	Set Conn = Nothing

För att få detta skriptet att fungera...
...måste du ha en db mapp i root mappen. Om du kommer använda denna kod, kräver det att du har en Access databas vid namn raknare.mdb i db mappen, med en tabell med en kolumn vid namn Antal

|--raknare.mdb (databas)
       |-----AntalBesok (Tabell namn)
                   |-------Antal (kolumn)

För att gömma den...
... kan du skapa en hemlig administratörs sida som kräver ett lösenord för att logga in på. För att skriva ut antal besökare, inte unika, använd då följande kod:

<%
if Request.QueryString("admin") = "" and Session("admin") = "" Then %>
<form name="loggain" action="admin.asp?check=password" method="post">
  Lösenord: 
  <input name="pwd" type="text" size="40">
</form>
<%elseif Request.QueryString("admin") = "OK" and session("admin") = "OK" Then
dim Conn, RecSet, AntalBesokTotalt, SQL
	Set Conn = Server.CreateObject("ADODB.Connection")
		Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/raknare.mdb")
	Set RecSet = Server.CreateObject("ADODB.Recordset")
			SQL = "SELECT * FROM AntalBesok" 
		RecSet.Open SQL, Conn
		
			
AntalBesokTotalt = RecSet("Antal")

Response.Write("Antal Besökare:" & AntalBesokTotalt & "<p><a href=""admin.asp?admin=loggaut"" target=""_self"">Logga ut</a>") 'Skriv ut antal besökare + en utloggningslänk!
			
		RecSet.Close
	Set RecSet = Nothing
		Conn.Close
	Set Conn = Nothing
	
Elseif Request.QueryString("admin") = "loggaut" Then
Session.Abandon()
Response.Redirect("admin.asp")
end if
'Stämmer lösenordet ?
dim password
password = "Arne" 'Lösenordet (notera: Stora och små bokstäver stämmer!
if Request.QueryString("check") = "password" Then
if Request.Form("pwd") = password Then ' om lösenordet stämmer...
Session("admin") = "OK" ' Skapa en session...
Response.Redirect("admin") = "OK" 'och skicka användaren till administratörssidan!
else
Response.Redirect("admin.asp") 'Om lösenordet inte stämmer, skicka tillbaka han till inloggningssidan!
end if
end if	
%>

// Wickmark

Medlem sedan aug. 20003 575 inlägg
#4

Om det nu bara är en räknare han behöver på sidan så är det ju helt onödigt med en databas. Bättre om han skriver det i en textfil eller något liknande. Han kan ju använda Global.Asa och Application men den töms ju om serven skulle starta om allt.

men jagt tycker att FSO bör användas.

Medlem sedan juli 2003162 inlägg
#5

Nickemannen skrev:

Om det nu bara är en räknare han behöver på sidan så är det ju helt onödigt med en databas. Bättre om han skriver det i en textfil eller något liknande. Han kan ju använda Global.Asa och Application men den töms ju om serven skulle starta om allt.

men jagt tycker att FSO bör användas.

Jo, det går med en textfil också.
Det är bara det att om Vickan vill ha en unik besöksräknare, så är det kanska praktiskt att ha en tabell i databasen där manlägger till unika IPs (besökare) och sen räknar inläggen i tabellen, och skriver ut antalet unika IPs (besökare).

En databas, istället för två textfiler... :)

Medlem sedan maj 200326 inlägg
#6

Wickmark: Det är så här att jag inte har acsess och har bara nosat lite på den och asp för en tid sedan.

Vad är FSO? Kan det vara enklare för mig när jag inte är så insatt?

Eller tycker ni att jag ska ta ett färdig räknare och försöka gömma den på något sätt?

Mvh/Vickan

Medlem sedan aug. 20011 946 inlägg
#7
 <%
on error resume next 
set fso = createobject("scripting.filesystemobject")
set act = fso.opentextfile(server.mappath("besokare.txt"))
counter = clng(act.readline)
counter = counter + 1
act.close
%>

Mycket enkel räknare som lagrara antal request på sidan i textfil. Klistra in koden på din sida och kolla sedan i textfilen när du vill veta antalaet besök.

Medlem sedan maj 200326 inlägg
#8

Tack så mycket för alla svar!

Jag håller på att testa dahlgrens exempel.

Och då undrar jag: Hur ska besokare.txt-filen se ut? :q

Mvh/Vickan

Medlem sedan juli 20033 147 inlägg
#9

Den ska vara tom :)

Medlem sedan maj 200326 inlägg
#10

Ok Tack!

Har nu försökt med denna koden men det vill inte funka.
Finns det någon som kan se felet?

<%
on error resume next 
set fso = Server.CreateObject("Scripting.FileSystemObject")

set fil = fso.OpenTextFile(Server.MapPath("besokare.txt"),1,True)
counter = clng(fil.ReadLine)
Response.Write(counter & " : ")
fil.Close
set fil = nothing

set fil = fso.OpenTextFile(Server.MapPath("besokare.txt"),2, True)
counter = counter + 1
Response.Write(counter)
fil.WriteLine(counter)
fil.Close
%>

Mvh/Vickan

Medlem sedan nov. 20014 054 inlägg
#11

I vilken mapp befinner sig textfilen besokare.txt

får du något felmeddelande, eller är händer det bara inget?

Medlem sedan maj 200326 inlägg
#12

Ok!

Nu funkar det så att räknaren syns på både första sidan och besokare.txt
Hur gömmer jag den nu på defaultsidan.

<%
on error resume next 
set fso = Server.CreateObject("Scripting.FileSystemObject")

set fil = fso.OpenTextFile(Server.MapPath("databas/besokare.txt"),1,True)
counter = clng(fil.ReadLine)
Response.Write(counter & " : ")
fil.Close
set fil = nothing

set fil = fso.OpenTextFile(Server.MapPath("databas/besokare.txt"),2, True)
counter = counter + 1
Response.Write(counter)
fil.WriteLine(counter)
fil.Close
%>

http://www.frederick.nu/default.asp

http://www.frederick.nu/databas/besokare.txt

Mvh/Vickan

:OO :OO

Medlem sedan aug. 20011 946 inlägg
#13

Ta bort raderna som skriver ut antalet besökare.

Response.Write(counter & " : ")
och
Response.Write(counter)

Nu kan du endast se besökarna genom att kika i textfilen.

Medlem sedan maj 200326 inlägg
#14

Tack så mycket, nu funkar det som jag vill. :)

Mvh/Vickan

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)