Afficher un journal de connexion

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Afficher un journal de connexion

Afficher un journal de connexion

par Invité » 24 sept. 2007, 20:49

Désolé au près des modérateurs pour ce deuxième poste.
JE POSTE le code dejà avancé, l'idée étant de pouvoir afficher en même temps le nombre de visite par jour (la ok voir ci-dessous) par semaine et par mois. Seulement pour la semaine et le mois je vois pas trop comment modifier mon code. Désolé et mervi.
<? 
// structure de la table myELECTRONSconnexion  //prem_visite BIGINT not null, 
//la_date BIGINT not null, 
//total INT not null, 
//ip VARCHAR (50) not null, 
//hostname VARCHAR (100) not null 
// pseudo VARCHAR (50) not null                                   
/*********************************** 
* Récupération de la configuration * 
***********************************/  // Chemin absolu vers le fichier config.inc.php 
$chemin = __FILE__; 
$chemin = str_replace('compteur.php', '', $chemin);  // On vérifie que le fichier config.inc.php existe bien 
if (!file_exists($chemin . 'config.inc.php')) { 
   echo 'Le fichier config.inc.php manque à l\'appel !'; 
} else { 
   require_once($chemin . 'config.inc.php');     // Connexion à la base de données 
 $base = @mysql_connect($base_serveur, $base_utilisateur, $base_mdp)  or die('Erreur de connexion :' . mysql_error()); 
   @mysql_select_db($base_nom, $base) or die('Erreur de sélection :' . mysql_error());  /*************************** 
   * Vérifications préalables * 
    ***************************/       
  $requete = "SELECT * FROM $base_table WHERE ip = 'reference'";  // dans la table il y a une ligne qui contient les informations suivantes : 
//(prem_visite, la_date, total, ip, hostname) VALUES ('$aujourdhui', '$aujourdhui', '$total_initial', 'reference', 'internet')";// 
    
$resultat = mysql_query($requete); 
  $data = mysql_fetch_assoc($resultat);           // On récupère la date du dernier jour stocké dans la base 
  $date_stockee = $data['la_date'];     // Si on a changé de jour, on remet le nombre de visites quotidiennes à 0 pour chaque membres 
 if ( ($aujourdhui != $date_stockee) ) { 
     // Le nombre de visites de chaque visiteur de la base est remis à 0 
     $requete = "UPDATE $base_table SET total = '0' WHERE ip != 'reference'"; 
        $resultat = mysql_query($requete); 
      // La date stockée est mise à jour à la date d'aujourd'hui 
      $requete = "UPDATE $base_table SET la_date = '$aujourdhui' WHERE ip = 'reference'"; 
     $resultat = mysql_query($requete); 
  }   
/*********************** 
 * Traitement des dates * 
    ***********************/      // On stocke dans $maintenant la date courante 
    $jour = date('j'); 
  $mois = date('n'); 
  $annee = date('Y'); 
 $aujourdhui = mktime(0, 0, 0, $mois, $jour, $annee);    // date d'aujourd'hui à minuit au format timestamp 
  $maintenant = time(); // date de l'instant présent au format timestamp   
/*********************** 
    * Traitement du pseudo * 
    ***********************/      $pseudo = trim($pseudo); // pseudo du membre  /************************* 
  * Traitement des visites * 
  *************************/    // Récupération de l'adresse IP du visiteur dans $ip 
  if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
      $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
 } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { 
      $ip  = $_SERVER['HTTP_CLIENT_IP']; 
  } else { 
        $ip = $_SERVER['REMOTE_ADDR']; 
  }     // Et du host correspondant à cette IP 
    $hostname = gethostbyaddr($ip);   
/************************* 
// j'effectue une requete pour vérifier si le pseudo est déjà dans la table  $requete = "SELECT FROM $base_table WHERE pseudo = '$pseudo'";     $resultat = mysql_query($requete);     $num = mysql_num_rows($resultat);   
// si le pseudo n'est pas encore dans la table alors on insère celui_ci  if($num == 0) {      $requete = "INSERT INTO $base_table (prem_visite, la_date, total, ip, hostname) VALUES ('$maintenant', '$maintenant', 1, '$ip', '$hostname')"; 
               $resultat = mysql_query($requete); 
               
        }  else {  // On récupère toutes les données qui lui correspondent 
          $requete = "SELECT * FROM $base_table WHERE pseudo = '$pseudo'"; 
            $resultat = mysql_query($requete); 
          $data = mysql_fetch_assoc($resultat);             // On récupère la date de ses première et dernière visites 
            $prem_visite = $data['prem_visite']; 
            $der_visite = $data['la_date'];           // Si la période est dépassée 
         if ( ($maintenant - $prem_visite) > (60*60) ) { 
              // On compte le visiteur comme nouveau, même si c'est dans la même journée 
              $nb_visites = $data['total'] + 1; 
               $requete = "UPDATE $base_table SET prem_visite = '$maintenant' , la_date = '$maintenant', total = $nb_visites WHERE pseudo = '$pseudo'"; 
                $resultat = mysql_query($requete); 
          } 
           // Sinon on est dans la même période d'unicité 
          else { 
              // On met uniquement à jour l'heure de son dernier passage 
              $requete = "UPDATE $base_table SET la_date = '$maintenant' WHERE pseudo = '$pseudo'"; 
               $resultat = mysql_query($requete); 
          } 
       }