Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Registrazione accessi con Asp

    salve.

    ho un problema con un banalissimo contatore di accessi di una pagina, fatto in asp.
    semplicemente rileva l'ip del host richiedente (session.servervariables...), controlla nel database se quell'ip ha già visitato la pagina oppure no. nel primo caso incrementa un contatore, nel secondo inserisce una nuova riga nel db, con l'ip ed altre informazioni.

    leggendo il db ho notato però che alcuni ip si ripetono consecutivamente più di una volta (anche 5 volte), e invece di incrementare il contatore inserisce una nuova riga, come se fossero visite diverse.

    come mai?

    grazie

  2. #2
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    perché il campo ammette duplicati.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  3. #3
    non capisco.

    l'inserimento di una nuova riga lo faccio con un INSERT solo quando ho controllato che l'ip rilevato non sia già presente.

    cosa centra il campo ceh ammette duplicati?

  4. #4
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    allora dipende da come hai implementato il codice. Il problema é che non ne hai postato una riga, quindi non si capisce il perché non funzioni il confronto.

    Mi sono permesso di tirare in ballo i duplicati per il semplice fatto che, personalmente, avrei preferito gestire l'eccezione che ne scaturisce da un tentativo di duplicazione...risparmiando una query di troppo.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  5. #5
    bè in effetti....
    si, era meglio postare anche il codice.
    ecoolo qua:

    %

    dim connessione
    dim rs
    dim quanti
    dim trovato

    set connessione=Server.CreateObject("ADODB.Connection" )
    set rs=Server.CreateObject("ADODB.Recordset")
    connessione.Open "provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("/db_files/contatore.mdb")



    sql="select count(id) from Contatore"
    rs.open sql,connessione,3,3
    quanti=rs.fields(0)
    rs.close
    trovato=0

    sql="select * from Contatore"
    rs.open sql,connessione,3,3

    if not rs.eof then

    for i=1 to quanti
    if (rs.fields("ipClient")=Request.ServerVariables("RE MOTE_HOST")) then

    rs.fields("numeroClick")=rs.fields("numeroClick") + 1
    rs.update
    trovato=1
    end if
    next

    end if

    if (trovato=0) then
    rs.addnew
    rs.fields("id")=quanti+1
    rs.fields("ipClient")=Request.ServerVariables("REM OTE_HOST")
    rs.fields("numeroClick")=1
    rs.update
    end if

    rs.close

    %>

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 © 2025 vBulletin Solutions, Inc. All rights reserved.