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);
}
}