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

    contare gli utenti connessi

    raga cè un modo in php per contare gli utente che si connetto al sito web.

    In asp si può fare nel file global mentre in php come si può fare???

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    46
    Io uso questo codice:

    Codice PHP:
    $host="localhost";
    $database="nome_del_tuo_database";
    $user="user_per_accedere_al_database";
    $password="password_per_accedere_al_database";
    $tabella="useronline";
    $linkdata=@mysql_connect($host,$user,$password);//riga parametri di collegamento database

    //ricavo il codice ip e l'orario
    $codip=$_SERVER['REMOTE_ADDR'];//estraggo il codice ip del navigatore
    $tempo=time();//ricavo il timestamp, numero che identifica l'orario del momento

    //adesso verifico se il codice ip è nella tabella oppure no
    $ric=@mysql_db_query($database,"select data from ".$tabella." where id='".$codip."' ",$linkdata);
    $numric=@mysql_num_rows($ric);
    if(
    $numric!=0){//se l'ip è nella tabella aggiorno l'orario
    @mysql_db_query($database,"update ".$tabella." set data=".$tempo." where id='".$codip."' ",$linkdata);
    }
    else{
    //se l'ip non è nella tabella lo inserisco
    @mysql_db_query($database,"insert into ".$tabella."(id, data) values ('".$codip."','".$tempo."')",$linkdata);
    //se in questo punto aumentiamo di 1 il numero di data dove id=1 (la prima riga della tabella) avremo anche un contatore di accessi del sito
    }

    //adesso elimino tutte le righe che eccedono nella differenza tempo
    $difdata=$tempo-120;//120 sono secondi, in pratica elimino tutti gli ip che non si collegano ad una pagina da almeno due minuti
    $ric2=@mysql_db_query($database,"select data from ".$tabella." where id!=1 ",$linkdata);
    $veric2=@mysql_num_rows($ric2);
    $numlinee=0;
    while (
    $numlinee<$veric2){
    $data=@mysql_result($ric2,$numlinee,"data");
    if(
    $data<$difdata){
    @
    mysql_db_query($database," delete from ".$tabella." where data=".$data." ",$linkdata);
    }
    $numlinee++;
    }
    //tabella dove vedremo in numero dei navigatori online:
    $fine=@mysql_db_query($database,"select * from ".$tabella." where id!=1 ",$linkdata);
    $online=@mysql_num_rows($fine);
    echo
    "<table><tr><td>Online : ".$online."</td></tr></table>";

    //selezioniamo un numero casuale (per non stressare il database) che ottimizza la tabella, in alcune condizioni per ottimizzare la tabella occorre circa un secondo, pertanto cercate di ottimizzarla unatantum
    $ran=rand(0,5);
    if(
    $ran==5){
    @
    mysql_query("OPTIMIZE TABLE ".$tabella." ");

    Con Mysql:
    CREATE TABLE `useronline` (
    `id` varchar(100) NOT NULL default '0',
    `data` int(100) NOT NULL default '0',
    PRIMARY KEY (`id`)
    );
    INSERT INTO `useronline` (`id`, `data`) VALUES (1, 0);

    Fonte: http://www.allwebfree.it/articolo_ph...ine_script.php

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.