Compteur basic avec contrôle des comptages inutiles sur x minutes

Contenu du snippet

<?

require_once('ressources.php');

$crcomp = mysql_query('CREATE TABLE IF NOT EXISTS compteur (id INT(5) AUTO_INCREMENT, last INT(10), dns VARCHAR(100), ip VARCHAR(15), PRIMARY KEY (id) )');

function Add_Show($timeout) {
// on epure
$del = mysql_query('DELETE FROM compteur WHERE last < '.(time()-$timeout*60));

$dns = gethostbyaddr($_SERVER['REMOTE_ADDR']);

$check = mysql_query('SELECT last FROM compteur WHERE ip="'.$_SERVER['REMOTE_ADDR'].'" or dns="'.$dns.'"');

if (@mysql_num_rows($check) == 0) {
$add = mysql_query('INSERT INTO compteur VALUES("",'.time().',"'.$dns.'","'.$_SERVER['REMOTE_ADDR'].'")');
}
else
{
$update = mysql_query('UPDATE compteur SET last='.time().' WHERE ip="'.$_SERVER['REMOTE_ADDR'].'" or dns="'.$dns);
}

$sel = mysql_query('SELECT id FROM compteur ORDER BY id DESC LIMIT 0,1');

$visites = 0;

if ($sel) {
$visites = mysql_fetch_array($sel);
$visites = $visites[0];
}

return $visites;
}

?>

Source / Exemple :


PS : ne pas oublier d'initialiser la connexion bdd, $timeout est le nb en minutes sur lequel on contrôle les visites
Code perfecible, a noté que update est sensé renvoyer le nb d'entrée modifiées mais qu'apparemment ca ne marche pas tjs alors je procède comme ceci ... dommage

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.