Accueil
Forums
Turoriaux
Inscription
Connexion
Fil RSS
Bienvenue invité !
Samedi 22 Novembre 2008

Realiser un compteur de visites uniques sur 24 h



1
Auteur Message
> Posté le : 18/07/2008 21h41
Avatar de Maxime34


Groupe : Membres
Messages : 121

Bonjour, j'ai besoin d'aide, j'aimerais savoir comment faire pour faire un compteur de visites ou les ip seraient enregistrés et effacer au bout de 24h...

PS: Je n'ai pas compris le tuto concernant se sujet  .

Maxime


> Posté le : 19/07/2008 00h09
Avatar de Ascott


Groupe : Membres
Messages : 301

Je pense que tu peux t'appuyer sur des scripts de vote qui permette de faire qu'un sondage dure X jours | heures ou minutes ... Et aussi pour que chaque Ip soit compté et ne vote qu'une fois.(ca se passe dans la bdd je crois)

Donc je te donne un bon site pour disons pomper quelques idées 

http://www.phpcs.com/

Chuck Norris peut te faire passer un sale quart d'heure en 8 minutes.
L'infographie bien plus qu'une passion ...
> Posté le : 19/07/2008 09h00
Avatar de Maxime34


Groupe : Membres
Messages : 121

J'ai trouvé un code mais je ne comprends pas l'erreur   . http://lyokoworld.fr/site/compteur.php

Code PHP:
<?php
 
 
function get_ip()
{
    if($_SERVER)
    {
        if($_SERVER['HTTP_X_FORWARDED_FOR'])
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        elseif($_SERVER['HTTP_CLIENT_IP'])
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        else
            $ip = $_SERVER['REMOTE_ADDR'];
    }
    else
    {
        if(getenv('HTTP_X_FORWARDED_FOR'))
            $ip = getenv('HTTP_X_FORWARDED_FOR');
        elseif(getenv('HTTP_CLIENT_IP'))
            $ip = getenv('HTTP_CLIENT_IP');
        else
            $ip = getenv('REMOTE_ADDR');
    }
 
    return $ip;
}
 
$fichier = fopen("compteurip.cip","r");
$content = fread($fichier, filesize ("compteurip.cip"));
fclose($fichier);

$fichier2 = fopen("compteurip.cip","w");
$tab = explode("n",$content);

if($content == ''){
$nbrvisits = 0;
fwrite($fichier2,get_ip());
fclose($fichier2);
setcookie('ip',get_ip(),time()+8600000);
}elseif(isset($_COOKIE['ip'])){
fwrite($fichier2,$content);
fclose($fichier2);
$nbrvisits = sizeof($tab);
}else{
$nbrvisits = sizeof($tab);
if(strchr($content,get_ip()) == false){
fwrite($fichier2,$content."n".get_ip());
fclose($fichier2);
setcookie('ip',get_ip(),time()+8600000);
}else{
fwrite($fichier2,$content);
fclose($fichier2);
setcookie('ip',get_ip(),time()+8600000);
}
}
echo '     '. $nbrvisits.' visiteurs!';
?>

Maxime


> Posté le : 19/07/2008 12h20
Avatar de lbeetls01


Groupe : Admins
Messages : 2070

Il faut le mettre avant tout code HTML, car il va définir des cookies.
Pourrait-tu nous donner le code complet de ta page ?


> Posté le : 19/07/2008 12h33
Avatar de Maxime34


Groupe : Membres
Messages : 121

Bien sur, voici donc le code complet de compteur.php que ensuite j'includerai dans mon footer.

Code PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body bgcolor="#808080">
<div align="center">
  <table width="16%" height="121" border="0" background="compteur4.JPG">
    <tr>
      <td> </td>
    </tr>
    <tr>
      <td> <div align="center"></div>
        <div align="center"></div>
        <?php
 
 
function get_ip()
{
    if($_SERVER)
    {
        if($_SERVER['HTTP_X_FORWARDED_FOR'])
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        elseif($_SERVER['HTTP_CLIENT_IP'])
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        else
            $ip = $_SERVER['REMOTE_ADDR'];
    }
    else
    {
        if(getenv('HTTP_X_FORWARDED_FOR'))
            $ip = getenv('HTTP_X_FORWARDED_FOR');
        elseif(getenv('HTTP_CLIENT_IP'))
            $ip = getenv('HTTP_CLIENT_IP');
        else
            $ip = getenv('REMOTE_ADDR');
    }
 
    return $ip;
}
 
$fichier = fopen("compteurip.cip","r");
$content = fread($fichier, filesize ("compteurip.cip"));
fclose($fichier);

$fichier2 = fopen("compteurip.cip","w");
$tab = explode("n",$content);

if($content == ''){
$nbrvisits = 0;
fwrite($fichier2,get_ip());
fclose($fichier2);
setcookie('ip',get_ip(),time()+8600000);
}elseif(isset($_COOKIE['ip'])){
fwrite($fichier2,$content);
fclose($fichier2);
$nbrvisits = sizeof($tab);
}else{
$nbrvisits = sizeof($tab);
if(strchr($content,get_ip()) == false){
fwrite($fichier2,$content."n".get_ip());
fclose($fichier2);
setcookie('ip',get_ip(),time()+8600000);
}else{
fwrite($fichier2,$content);
fclose($fichier2);
setcookie('ip',get_ip(),time()+8600000);
}
}
echo '     '. $nbrvisits.' visiteurs!';
?>
        <div align="center"></div>
        <div align="center"></div>
        <div align="center"></div></td>
    </tr>
    <tr>
      <td> </td>
    </tr>
  </table>
</div>
</body>
</html>
 

Maxime


> Posté le : 19/08/2008 16h18
Aucun avatar


Groupe : Membres
Messages : 1

Et pourquoi pas faire un système tout bête avec une tache cron qui efface le fichier tous les jours a 12h00 ?

Il faut bien entendu avec accès a cron ou utiliser un site gratuit mais desfois leurs services sont pas top top :/
1