Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Problema somma: 1 + 1 = 3

    Non riesco a capire
    Implemento questo semplice codice in Pagina1 per contare le visualizzazioni
    codice:
    Dim nomefile, filestream 
    nomefile = Server.MapPath("/directory/"& request.QueryString("id") &".txt") 
    Set objFile = CreateObject("Scripting.FileSystemObject") 
    if not objFile.FileExists(nomefile) then 
    Set filestream = objFile.OpenTextFile(nomefile, 2, true) 
    filestream.WriteLine("0") 
    end if 
    filestream = objFile.OpenTextFile(nomefile, 1, true) 
    Dim visite 
    visite = filestream.ReadLine() 
    filestream.Close 
    visite = visite + 1
    Set filestream = objFile.CreateTextFile(nomefile, true) 
    filestream.WriteLine(visite) 
    filestream.Close 
    Set filestream = Nothing 
    Set objFile = Nothing
    Response.Write " Letto: " &visite&" volte."
    (Tutto OK in Pagina 1)
    Lo stesso codice implementato in un altra pagina mi restituisce sempre il numero delle visite + 2.
    esempio : Letto 500 volte...alla successiva visualizzazione: letto 502 volte e cosi vià.
    Il bello è che usando un DB e aggiornando visite= visite + 1 ... ho lo stesso problema.

    Nella prima pagina tutto funziona e continua a funzionare correttamente.
    Come ASP è.
    Grazie

  2. #2
    probabilmente lo richiami due volte...

  3. #3
    E' la prima cosa evidente, a cui ho pensato e verificato...controllato e sicuro di non richiamarlo due volte mi sono scimunito a vuoto.

    Comunque non so come risolvere...non vorrei utilizzare un frame!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938

    Re: Problema somma: 1 + 1 = 3

    Originariamente inviato da zazoom
    Non riesco a capire
    Implemento questo semplice codice in Pagina1 per contare le visualizzazioni
    codice:
    Dim nomefile, filestream 
    nomefile = Server.MapPath("/directory/"& request.QueryString("id") &".txt") 
    Set objFile = CreateObject("Scripting.FileSystemObject") 
    if not objFile.FileExists(nomefile) then 
    Set filestream = objFile.OpenTextFile(nomefile, 2, true) 
    filestream.WriteLine("0") 
    end if 
    filestream = objFile.OpenTextFile(nomefile, 1, true) 
    Dim visite 
    visite = filestream.ReadLine() 
    filestream.Close 
    visite = visite + 1
    Set filestream = objFile.CreateTextFile(nomefile, true) 
    filestream.WriteLine(visite) 
    filestream.Close 
    Set filestream = Nothing 
    Set objFile = Nothing
    Response.Write " Letto: " &visite&" volte."
    (Tutto OK in Pagina 1)
    Lo stesso codice implementato in un altra pagina mi restituisce sempre il numero delle visite + 2.
    esempio : Letto 500 volte...alla successiva visualizzazione: letto 502 volte e cosi vià.
    Il bello è che usando un DB e aggiornando visite= visite + 1 ... ho lo stesso problema.

    Nella prima pagina tutto funziona e continua a funzionare correttamente.
    Come ASP è.
    Grazie
    Ciao, ho provato il tuo codice su Aruba,

    1) Set filestream = objFile.OpenTextFile(nomefile, 1, true)

    e non filestream = objFile.OpenTextFile(nomefile, 1, true) mi da errore.

    Lo script come è scritto (dopo correzione), con copia e incolla se non passo un parametro come richiesto nella QueryString ID, crea un file chiamato .txt e scrive il primo numero 1, e ogni refresh di pagina aumenta di 1

    Quindi se lo script si trova in Pagina 1, la prima volta che Pagina 1 viene aperta segna 1.

    Vista la richiesta di un id per lincare a Pagina 2, Pagina 2.asp?id=1 , ti crea un nuovo file chiamato 1.txt, Pagina 3.asp?id=2 crea 2.txt ... all'infinito.

    Però l'ID non è valorizzato se scrivo nella barra degli indirizzi la URL/Pagina 2.asp?io=hofame , mi scrive sul file .txt.

    Per valorizzare la richiesta dell'ID come parametro:

    codice:
    id=request.QueryString("id")
    If id = "" then
    Response.Write("<h3><center>ID non valorizzato</center></h3>")
    Response.End
    End If
    Dim nomefile, filestream 
    nomefile = Server.MapPath("/directory/"& id &".txt")
    Adesso se il link non è scritto Pagina 2.asp?id=Numero di scrive che l'ID non è Valorizzato e blocca lesecuzione, (puoi mettere un redirect o altro invece del messaggio).

    Se non vuoi far incrementare il numero delle visite ad ogni click o refresh per ogni singolo utente, usa le Session in:

    visite = visite + 1

    codice:
    if session("visite") <> "si" then
    visite = visite +1
    session("visite")="si"
    end if
    M.

  5. #5
    Ti ringrazio Massimo, il Set filestream = objFile.OpenTextFile(nomefile, 1, true) era solo un errore di battitura...il codice fa solo parte e viene processato alla fine della pagina, controllo l'id prima e in caso di errori non arriva alla riga per conteggiare le visite.

    Il codice è solo di esempio per rendere subito chiara l'idea e di quanto fosse idiota l'errore, in altre pagine genero .txt con Path diverse...cmq stanotte ciò perso 2 ore per scoprire semplicemente che è solo un problema di cache del browser.

    Su IE e Opera funziona correttamente...mentre su Firefox, Chrome e Safari si va a far friggere.

    Ho provato ad impostare sia lato client che server la cache con diverse impostazioni, ma alla fine mi sono scocciato

    O riuscivo a far aggiornare la visita solo alla prima visualizzazione (come se usassi una session . che dall'inizio ho preferito non usare - credo che per quanto debba essere semplice la cosa,non serve usare una session)...o dopo la prima visualizzazione => aggiorna di + 2.

    Sinceramente ancora non sono riuscito a capire bene in che modo la cache possa far generare questo errore - tornado anche a optime - e come o forse davvero lo processa due volte

    se posso ti faccio rendere conto:
    Pagina su cui funziona correttamente sempre e su tutti i browser
    http://www.zazoom.it/blog_rsc/post.asp?id=953

    Stesso codice che genera errore su chrome fire e safari..in questo caso aggiorna lo stesso .txt
    http://zazoom.it/zoom/iperview.asp?id=953
    Se provi a riaggiornare "Letto" si incrementa di 2 (almeno a me)

    Ti ringrazio cmq e se hai qualche altra idea, ben venga

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Secondo me è perché il secondo link d'esempio e in un frameset e per un qualche motivo lo script viene eseguito due volte.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Originariamente inviato da cavicchiandrea
    Secondo me è perché il secondo link d'esempio e in un frameset e per un qualche motivo lo script viene eseguito due volte.
    Ciao Andrea,

    il problema non è il frameset, ho disabilitato js e visualizzato i due frame singolarmente, solo quello di sinistra che contiene il contatore incrementa di due http://zazoom.it/zoom/accesso/iper.asp?id=953

    il frame di destra http://www.volodeisensi.it/ non incrementa il conto.

    Però ho scorso scrivendo numeri casuali per l'ID questo:

    codice:
    ADODB.Field error '800a0bcd'
    
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
    
    /zoom/accesso/iper.asp, line 25
    http://zazoom.it/zoom/accesso/iper.asp?id=1

    scorrendo diverse numerazioni per gli ID la pagina iper.asp vedo i diversi messaggi.

    Nel link scritto non sta usando un file di testo ma un DB, e non c'è controllo su un ID che non esiste.


    Quindi presumo una SQL tipo

    UPDATE tabella SET nome_camo = nome_campo + 1 WHERE id = id

    Se non scorro il singolo frame e cambio N° ID a:

    ht

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Sorry

    riscrivo il messaggio perchè, la prima volta, mezzo msg e dopo le modifiche soesso.

    Originariamente inviato da cavicchiandrea
    Secondo me è perché il secondo link d'esempio e in un frameset e per un qualche motivo lo script viene eseguito due volte.
    Ciao Andrea,

    il problema non è il frameset, ho disabilitato js e visualizzato i due frame singolarmente, solo quello di sinistra che contiene il contatore incrementa di due http://zazoom.it/zoom/accesso/iper.asp?id=953

    il frame di destra http://www.volodeisensi.it/ non incrementa il conto.

    Però ho scorso scrivendo numeri casuali per l'ID questo:

    codice:
    ADODB.Field error '800a0bcd'
    
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
    
    /zoom/accesso/iper.asp, line 25
    http://zazoom.it/zoom/accesso/iper.asp?id=1

    scorrendo diverse numerazioni per gli ID la pagina iper.asp vedo i diversi messaggi.

    Nel link scritto non sta usando un file di testo ma un DB, e non c'è controllo su un ID che non esiste.


    Quindi presumo una SQL tipo

    UPDATE tabella SET nome_camo = nome_campo + 1 WHERE id = id

    Se non scorro il s

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Sorry

    riscrivo il messaggio perchè, la prima volta, mezzo msg e dopo le modifiche soesso.

    Originariamente inviato da cavicchiandrea
    Secondo me è perché il secondo link d'esempio e in un frameset e per un qualche motivo lo script viene eseguito due volte.
    Ciao Andrea,

    il problema non è il frameset, ho disabilitato js e visualizzato i due frame singolarmente, solo quello di sinistra che contiene il contatore incrementa di due http://zazoom.it/zoom/accesso/iper.asp?id=953

    il frame di destra http://www.volodeisensi.it/ non incrementa il conto.

    Però ho scorso scrivendo numeri casuali per l'ID questo:

    codice:
    ADODB.Field error '800a0bcd'
    
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
    
    /zoom/accesso/iper.asp, line 25
    http://zazoom.it/zoom/accesso/iper.asp?id=1

    scorrendo diverse numerazioni per gli ID la pagina iper.asp vedo i diversi messaggi.

    Nel link scritto non sta usando un file di testo ma un DB, e non c'è controllo su un ID che non esiste.


    Quindi presumo una SQL tipo

    UPDATE tabella SET nome_camo = nome_campo + 1 WHERE id = id

    Se non scorro il singolo frame e cambio N° ID a:

    http://zazoom.it/zoom/iperview.asp?id=953 con id=1

    sono reindirizzato a:

    http://zazoom.it/zoom/zoomate.asp

    Probabile Aggiornamento contatore nel frameset, campo impostato a Numerico o testo?


    M.

  10. #10
    Casp..grazie per l'attenzione...ti spiego.
    Anzitutto Grazie per avermi fatto notare della mancanza del controllo in http://zazoom.it/zoom/iperview.asp che adesso ho inserito (non ritenevo opportuno visto che cè ne uno js..ma per la precisione grazie cmq.)

    Il db lo aggiorno, ma non nel modo che pensi....ho iniziato a contare le visualizzazioni con dei semplice txt più di sei mesi fà, i numeri erano piccoli e chiaramente non ritenevo opportuno mostrarli; Poi tutto il sito e cresciuto e ho iniziato a mostrarli...volevo creare una pagina per i post più letti e ho semplicemente aggiunto un update delle visite scritte nei .txt in un campo Int del relativo post, cosi da poterlo ordinare per ordine ASC.
    Non è l'ideale, ma per modifiche fatte nel tempo, ho preferito questo a dovermi andare ad inserire tutti gli accessi per ogni singolo articolo

    Per quanto vi possa sembrare strano qualche settimana fà, come detto all'inizio, anche e cmq aggiornando il db come detto da massimo


    UPDATE tabella SET nome_camo = nome_campo + 1 WHERE id = id

    Ottengo lo stesso errore.... e mi sono iniziato ad innervosire quando ottenevo lo stesso risultato qui:
    http://www.zazoom.it/zoom/utente.asp?ut=1
    Su IE sempre tutto OK...ma per il resto aggiorna a + 2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.