$ip= getenv(REMOTE_ADDR);
la date de connexion :
Code : Tout sélectionner
$maintenant = time();$pseudo = trim($pseudo);
mais n'étant pas spécialiste je sais pas trop comment m'y prendre :
je me suis mis de suite au travail :Dans ce cas, tu peux avoir une table "Connexion" dans laquelle tu ajoutes un enregistrement dès que tu détectes que ton membre viens de se connecter, avec la date de la connexion.
// 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_table, $base) or die('Erreur de sélection :' . mysql_error());
// les paramètres
$time = time();
$ip=getenv(REMOTE_ADDR);
$pseudo = trim($pseudo);
// j'effectue une requete pour vérifier si le pseudo est 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) {
$query = mysql_query("INSERT INTO $base_table VALUES ('$time','$ip','$pseudo')" }
else{
}
Après le else je dois donc récupérer avec le timestamp de sa dernière connexion et le comparer avec le timestamp actuel si l'écart depasse un certain temps alors j'incrémente la valeur de la connexion et je dois aussi mettre à jour la valeur du timestamp.
Code : Tout sélectionner
INSERT INTO connexion (ip, date, pseudo)
VALUES ('adresseIP', NOW(), 'pseudo')Code : Tout sélectionner
SELECT MAX(TIMESTAMP(date)) from connexion where ip='ip'<?
// 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);
}
}
}
Donc si on n'a pas change de jour j'incrémente le nb de visite de chaque visiteur si celui ci se connecte toutes les heures. Une fois le jour changé le nbre de viste pour chaque visiteur devient 0.