Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: contatore impazzito ?!

  1. #1

    contatore impazzito ?!

    ciao,
    utilizzo il seguente codice per incrementare il numero dei visitatori al mio sito giorno per giorno se non esiste ancora in sessione una variabile che ne impedisce l'incremento

    codice:
    session_start();
    
    ### CONTATORE VISITE ANCHE IN CASO DI ACCESSO ESTERNO (NON TRAMITE INDEX)###
    include "dbconnect.php";
    
    if(empty($_SESSION['counter_visite']))
    {
    $todate=date('Y-m-d');
    if(mysql_num_rows(mysql_query ("select * from counter where data='$todate'"))==0)
     {
     mysql_query ("insert into counter values('1','$todate','')");
     }
     else
     {
     $result = mysql_query("select * from counter where data='$todate' limit 1");
    		
    		while ($row = mysql_fetch_array($result)) 
    		{
    			$aumenta=$row['visite']+1; 
    			mysql_query("update counter set visite='$aumenta' where data='$todate'");
    
    		}
    
     }
    		
    		$_SESSION['counter_visite']="aggiornato";
    	}
    ### FINE CONTATORE VISITE ###
    ma ecco i valori:



    non è possibile che i miei utenti e visitatori siano più di una cinquantina al giorno e visti i numeri ho pensato che possono essere i robots dei motori di ricerca ad elevare così tanto i valori..

    voi che ne pensate? quale potrebbe essere il motivo e quale un eventuale rimedio?

  2. #2
    manca un session_start ... che deve essere presente in tute le sezioni del sito altrimenti e' inutile settare $_SESSION

    detto questo ...

    codice:
    if(!isset($_SESSION['counter_visite'])) {
    	$todate=date('Y-m-d');
    	if(mysql_num_rows( mysql_query("select * from counter where data='{$todate}'") )==0)
    		mysql_unbuffered_query("insert into counter values('1','{$todate}','')");
    	else
    		mysql_unbuffered_query("UPDATE counter SET visite = (visite + 1) WHERE data='{$todate}'");
    	$_SESSION['counter_visite'] = true;
    }
    ... fine
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    in pratica quello che avevi prima nn erano accessi unici ma numero di volte che la pagina veniva caricata.. facendo come ha detto andrea ti garantisci un lasso di tempo entro il quale un utente ed il suo relativo passaggio sulla tua pagina viene considerato unico..

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  4. #4
    Originariamente inviato da luke83
    facendo come ha detto andrea
    sempre che esista un session_start() in ogni pagina del sito , altrimenti non cambia il sunto, ovveor non e' unico
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    chiaramente altrimenti perdi traccia... (<- php senza il session_start())

    andrea docet...
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  6. #6
    eddai ragà... mica sono scemo.. certo che c'è il session_start().. ma non è quello il problema se avete letto quello che ho scritto.. non è che non funziona... anzi funziona troppo ! il codice funziona perfettamente... è un altro il problema

  7. #7
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    solitamente la gente si lamenta per il contrario... poche pagine visitate...

    se il problema è quello dei motori dovresti trovare una lista dettagliata degli ip dei grabber e spider e purgarli dai conteggi... resta il problema che secondo me hai visualizzazioni nn uniche tutto lì... se mi viene in mente qualcosa ti faccio sapere...
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  8. #8
    il nocciolo del problema è che il numero delle visite alcune volte è mostrusamente alto rispetto al numero medio di utenti che ogni giorni vanno sul mio sito, nonostante abbia racchiuso lo script di incremento del valore nel db con

    codice:
    if(empty($_SESSION['counter_visite']))
    {
    #...
    }

    e la var $_SESSION['counter_visite'] funziona perfettamente...

    forse mi sono spiegato meglio ora...?!!

  9. #9
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    t ripeto, ho una mente che si impalla spesso.. per me potrebbero essere i tuoi "venticinque lettori" che un giorno decidono di leggere la pag una volta a testa=> 25 e un giorno invece 4 volte => 100 visite mo nn so mi puzza che potrebbe essere la vita della sessione bassa oppure nn so, mi spiace..
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  10. #10
    Originariamente inviato da stefanoi
    eddai ragà... mica sono scemo.. certo che c'è il session_start()
    io non l' ho visto, se sta da altre parti meglio cosi' ... ma avendo la sfera di cristallo rotta non potevo che dirti quale poteva essere il problema di un sovrannumero di clicks ...


    Originariamente inviato da stefanoi
    .. ma non è quello il problema se avete letto quello che ho scritto.. non è che non funziona... anzi funziona troppo ! il codice funziona perfettamente...
    funziona cosi' perfettamente che da un notice per ogni click di qualunque persona ... poi che il server non lo mostra e' un altro discorso, di fatto il codice era fatto male, sia per il controllo
    !empty
    che e' un notice su variabili inesistenti ... mentre e' corretto usare
    isset
    sia per la doppia query per l' aggiornamento, tranquillamente sostituibile dalle mie 4 righe di codice, ma sei libero di lasciare cosi' se sei convinto che e' tanto perfetto


    Originariamente inviato da stefanoi
    è un altro il problema
    il problema e' un altro ... bene, volevi bullarti del fatto che ogni tanto hai un sacco di visite sul tuo sito col contatore "perfetto" ???

    no, allora dov'e' il problema ?
    o ti parsi il referer ed escludi eventuali robots, oppure piu' che dirti che se session_start non e' abilitato prima di quello script questo non funziona, non so proprio che dire , mi spiace
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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