|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Aug 2003
Città: M i l @ n o
Messaggi: 5265
|
Contatore
ragazzi un aiuto serio
sto delirando, non riesco a fare un contatore di accessi per un sito in asp e come database un file txt ne avete di gia pronti? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 1999
Città: Cuneo
Messaggi: 314
|
|
![]() |
![]() |
![]() |
#3 | |
Bannato
Iscritto dal: Aug 2003
Città: M i l @ n o
Messaggi: 5265
|
Quote:
giuro non riesco a farne andare uno me ne serve uno testato gia pronto |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
|
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n; Utilizzando atomi trivalenti drogheremo il silicio di tipo p; Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo |
![]() |
![]() |
![]() |
#5 | |
Bannato
Iscritto dal: Aug 2003
Città: M i l @ n o
Messaggi: 5265
|
Quote:
lavoro con dreamweaver ho creato il file visite.txt e l'ho messo nella cartella che ho creato "public" sulla root del sito sempre sulla root ho messo il contatore copiando esattamente il codice vado alla pagina e mi dice Microsoft VBScript runtime error '800a0046' Permission denied /contatore.asp, line 25 perchè? |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
L'errore te lo da perchè probabilmente non hai la cartella /public sul tuo server web...
Sinceramente un contatore del genere mi lascia un po' perplesso... E' sintatticamente scorretto...può portare sia a pardita di conteggi, sia ad inconsistenza del contenuto del file... Vi spiego perchè... Codice PHP:
Nel file c'è il numero 1000... A arriva al punto UNO e legge 1000... B arriva al punto DUE e legge 1000... A arriva al punto DUE e scrive 1001... B arriva al punto DUE e scrive 1001... Ecco che si è perso un conteggio... Il file doveva contenere 1002... Riguardo all'inconsistenza contenuto del file... Non so come e se viene gestita la mutua esclusione sull'accesso al file... OpenTextFile attende che un file sia stato chiuso ? Spero di sì altrimenti ci sarebbero molti errori... Ad esempio A è al punto DUE, B arriva al punto UNO...B non ha letto nessun numero del file... Senza contare le possibilità di scrittura contemporanea con WriteFile...che porterebbero a risultati inconsistenti (a meno che questa possibilità venga gestita da ASP in modo intelligente)... Quindi secondo me se si vuole fare un buon contatore, senza ricorrere ad un database, bisogna utilizzare le variabili di applicazione e gli eventi nel global.asa !!! Una cosa semplice (contenuto del file Global.asa): Codice PHP:
Ultima modifica di cionci : 18-08-2003 alle 16:45. |
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Aug 2003
Città: M i l @ n o
Messaggi: 5265
|
grazie dell'aiuto ma se non ci spieghiamo bene non potrò mai capire
dove lo metto il codice? in una pagina asp o php? la pagina dove la metto? |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
|
quoto dal link:
"Una caratteristica importante di questo contatore, è che esso evita di conteggiare i reload al sito (per intenderci, quegli accessi che vengono conteggiati quando si clicca sul pulsante aggiorna del browser), o gli eventuali ritorni alla home page dopo aver visitato pagine interne al sito: per implementare questa "feature" utilizziamo una variabile di sessione che creiamo nel momento in cui un utente entra nel nostro sito a cui diamo il valore 1; prima di incrementare il contatore verrà verificato che questa variabile abbia un valore diverso da 1 (se non è così significa che l'utente è già passato dalla home page del nostro sito durante quella sessione e che quindi il suo accesso è già stato conteggiato)." ma è chiaro che è solo un riferimento per chi ha una certa fretta. cmq..al solito, hai fatto un'ottima analisi! ![]() ![]() ![]()
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n; Utilizzando atomi trivalenti drogheremo il silicio di tipo p; Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo |
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Aug 2003
Città: M i l @ n o
Messaggi: 5265
|
lo dico almeno faccio chiarezza
non ho MAI usato asp o php quindi parto proprio da 0 |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
![]() ciao ![]() |
|
![]() |
![]() |
![]() |
#11 | |
Bannato
Iscritto dal: Aug 2003
Città: M i l @ n o
Messaggi: 5265
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quello che ho scritto lo devi mettere in un file chiamato global.asa che va messo all'interno della root del server web...
Per visualizzare il valore del contatore: <%= Application("Contatore") %> Per visualizzare il numero di utenti online: <%= Application("UtentiOnline") %> |
![]() |
![]() |
![]() |
#13 | |
Bannato
Iscritto dal: Aug 2003
Città: M i l @ n o
Messaggi: 5265
|
Quote:
praticamente faccio un file global.asa e scrivo dentro tutta la pappardella ma poi? |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Poi per visualizzare il contatore scrivi quello che ti ho scritto sopra all'interno del codice HTML di una pagina con estensione .asp...
Ad esempio: Codice:
<html> <head> <title></title> </head> <body> Contatore: <%= Application("Contatore") %> Utenti online: <%= Application("UtentiOnline") %> </body> </html> Comunque funziona egregiamente...ho provato... Ultima modifica di cionci : 18-08-2003 alle 16:47. |
![]() |
![]() |
![]() |
#15 | |
Bannato
Iscritto dal: Aug 2003
Città: M i l @ n o
Messaggi: 5265
|
Quote:
faccio un file ASP con dentro questo codice Codice:
<% Dim nomefile, filestream nomefile = Server.MapPath("/public/visite.txt") Set objFile = CreateObject("Scripting.FileSystemObject") 'se il file non esiste, crealo if not objFile.FileExists(nomefile) then Set filestream = objFile.OpenTextFile(nomefile, 2, true) filestream.WriteLine("0") end if 'legge il numero attuale di visite Set filestream = objFile.OpenTextFile(nomefile, 1, true) Dim visite visite = filestream.ReadLine() filestream.Close 'punto UNO 'se non è ancora presente la variabile di sessione if Session("visiting")<>1 then Session("visiting") = 1 'crea la variabile di sessione visite = visite + 1 'incrementa di uno gli accessi al sito end if 'scrive nel file il valore aggiornato di visite Set filestream = objFile.CreateTextFile(nomefile, true) 'punto DUE filestream.WriteLine(visite) filestream.Close Set filestream = Nothing Set objFile = Nothing 'visualizza sul browser il numero totale di visite Response.Write "Numero visite: " &visite %> poi chessò nella mia index metto Contatore: <%= Application("Contatore") %> Utenti online: <%= Application("UtentiOnline") %> e tutto funziona? |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Il codice da mettere in global.asa non è quello, ma quello che avevo postato dopo, sempre nello stesso post...
Comunque usa questo che è modificato e previene il fatto che se si pianta il server web si perdano tutti i conteggi... Codice:
<SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Application_OnStart Dim nomefile, filestream nomefile = Server.MapPath("/visite.txt") Application("nomefile") = nomefile Set objFile = CreateObject("Scripting.FileSystemObject") 'se il file non esiste, crealo if not objFile.FileExists(nomefile) then Set filestream = objFile.OpenTextFile(nomefile, 2, true) filestream.WriteLine("0") end if 'legge il numero attuale di visite Set filestream = objFile.OpenTextFile(nomefile, 1, true) Dim visite visite = filestream.ReadLine() filestream.Close Application("Contatore") = visite Application("UtentiOnline") = 0 Set filestream = Nothing Set objFile = Nothing End Sub Sub Application_OnEnd Dim nomefile, filestream nomefile = Application("nomefile") Set objFile = CreateObject("Scripting.FileSystemObject") 'scrive nel file il valore aggiornato di visite Set filestream = objFile.CreateTextFile(nomefile, true) filestream.WriteLine(Application("Contatore")) filestream.Close Set filestream = Nothing Set objFile = Nothing End Sub Sub Session_OnStart Application("Contatore") = Application("Contatore") + 1 Application("UtentiOnline") = Application("UtentiOnline") + 1 End Sub Sub Session_OnEnd Application("UtentiOnline") = Application("UtentiOnline") - 1 Dim numeroVisite numeroVisite = Application("Contatore") If (numeroVisite Mod 100 = 0) Then Dim nomefile, filestream nomefile = Application("nomefile") Set objFile = CreateObject("Scripting.FileSystemObject") 'scrive nel file il valore aggiornato di visite Set filestream = objFile.CreateTextFile(nomefile, true) filestream.WriteLine(Application("Contatore")) filestream.Close Set filestream = Nothing Set objFile = Nothing End If End Sub </SCRIPT> |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#18 |
Bannato
Iscritto dal: Aug 2003
Città: M i l @ n o
Messaggi: 5265
|
non cè che mi ricapitoli che mi sa che mi sto confondendo?
mi dici cosa fare e dove passo passo ![]() |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Avevi detto tutto bene... L'unica cosa è che avevi sbagliato a copiare il codice da mettere in global.asa...
Metti il codice sopra in global.asa...copi il file nella root...nei tuoi file .asp puoi richiamare i contatori con il emtodo scritto sopra... |
![]() |
![]() |
![]() |
#20 |
Bannato
Iscritto dal: Aug 2003
Città: M i l @ n o
Messaggi: 5265
|
ma non capisco
il codice global.asa che hai detto tu è quello che ho scritto <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Application_OnStart Dim nomefile, filestream nomefile = Server.MapPath("/public/visite.txt") Application("nomefile") = nomefile Set objFile = CreateObject("Scripting.FileSystemObject") 'se il file non esiste, crealo if not objFile.FileExists(nomefile) then Set filestream = objFile.OpenTextFile(nomefile, 2, true) filestream.WriteLine("0") end if 'legge il numero attuale di visite Set filestream = objFile.OpenTextFile(nomefile, 1, true) Dim visite visite = filestream.ReadLine() filestream.Close Application("Contatore") = visite Application("UtentiOnline") = 0 Set filestream = Nothing Set objFile = Nothing End Sub Sub Application_OnEnd Dim nomefile, filestream nomefile = Application("nomefile") Set objFile = CreateObject("Scripting.FileSystemObject") 'scrive nel file il valore aggiornato di visite Set filestream = objFile.CreateTextFile(nomefile, true) filestream.WriteLine(Application("Contatore")) filestream.Close Set filestream = Nothing Set objFile = Nothing End Sub Sub Session_OnStart Application("Contatore") = Application("Contatore") + 1 Application("UtentiOnline") = Application("UtentiOnline") + 1 End Sub Sub Session_OnEnd Application("UtentiOnline") = Application("UtentiOnline") - 1 End Sub </SCRIPT> non è che mi mandi un esempio?rischiamo solo di nn capirci cosi ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:35.