TUTO: afficher le nombre de visiteur en direct
- Accueil
- Forum
- Programmation
- PHP
- TUTO: afficher le nombre de visiteur en direct
D_S Le 2 décembre 2016 à 03:12 (Édité le 25 janvier 2019 à 17:52)
jai suivi le tuto de PRIMFX portant sur l'affichage du nombre de visiteur en ligne sur un site. dans ce tuto lorsqu'il change de page, le nombre de visiteur reste inchangé. j'ai reproduit le meme code mais quand je change de page, le nombre de visiteur augmente de 1. j'ai besoin d'aide svp. MERCI!
Balatharas Le 2 décembre 2016 à 17:15 (Édité le 2 décembre 2016 à 17:36)
Et si tu recommençais le tuto a partir du moment où ça bug ?
Ah et tu n'est pas dans la bonne catégorie, il aurait fallu mettre le topic dans PROGRAMMATION / PHP
Balatharas Le 2 décembre 2016 à 22:38 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 3 décembre 2016 à 07:14 (Édité le 1 janvier 1970 à 01:00)
C'est possible d'avoir ton code? Parce que pour ma part, j'ai encore aucun dont divinatoire :(
PrimFX Le 4 décembre 2016 à 19:11 (Édité le 1 janvier 1970 à 01:00)
D_S Le 7 décembre 2016 à 03:15 (Édité le 1 janvier 1970 à 01:00)
connection.php
<?php
function db_connect() {
try {
$host = 'localhost';
$dbname = 'espace_membre';
$user = 'root';
$password = '';
$db = new PDO('mysql:host='.$host.';dbname='.$dbname.'', $user,$password);
return $db;
} catch (Exception $e) {
die('Erreur de connexion : ' . $e->getMessage());
}
};
?>
--------------------------------
index.php
<?php
include('connection.php');
$db=db_connect();
$tps_session = 15;
$tps_actuel = date("U");
$user_ip = $_SERVER['REMOTE_ADDR'];
$req_ip_exist = $db->prepare('SELECT * FROM online user_ip = ?');
$req_ip_exist->execute(array($user_ip));
$ip_exist = $req_ip_exist->rowCount();
if ($ip_exist == 0)
{
$add_ip = $db->prepare('INSERT INTO online(user_ip,tps) VALUES(?,?)');
$add_ip->execute(array($user_ip,$tps_actuel));
}
else
{
$update_ip = $db->prepare('UPDATE online SET tps = ? WHERE user_ip = ?');
$update_ip->execute(array($tps_actuel,$user_ip));
}
$session_delete_tps = $tps_actuel - $tps_session;
$del_ip = $db->prepare('DELETE FROM online WHERE tps < ?');
$del_ip->execute(array($session_delete_tps));
$show_user_nbr = $db->query('SELECT * FROM online');
$user_nbr = $show_user_nbr->rowCount();
?>
--------------------------------
p2.php
<?php
include('user_nbr_live.php');
?>
<!DOCTYPE html>
<html>
<head>
<title>visiteurs PHP</title>
<meta charset="utf-8">
</head>
<body>
page 2 - Actuellement <?php echo $user_nbr; ?> utilisateur<?php if($user_nbr != 1) echo "s" ?> en ligne <br />
<a href="index.php"> Aller à index </a>
</body>
</html>
---------------------------------------------
user_nbr_live.php
<?php
include('connection.php');
$db=db_connect();
$tps_session = 15;
$tps_actuel = date("U");
$user_ip = $_SERVER['REMOTE_ADDR'];
$req_ip_exist = $db->prepare('SELECT * FROM online user_ip = ?');
$req_ip_exist->execute(array($user_ip));
$ip_exist = $req_ip_exist->rowCount();
if ($ip_exist == 0)
{
$add_ip = $db->prepare('INSERT INTO online(user_ip,tps) VALUES(?,?)');
$add_ip->execute(array($user_ip,$tps_actuel));
}
else
{
$update_ip = $db->prepare('UPDATE online SET tps = ? WHERE user_ip = ?');
$update_ip->execute(array($tps_actuel,$user_ip));
}
$session_delete_tps = $tps_actuel - $tps_session;
$del_ip = $db->prepare('DELETE FROM online WHERE tps < ?');
$del_ip->execute(array($session_delete_tps));
$show_user_nbr = $db->query('SELECT * FROM online');
$user_nbr = $show_user_nbr->rowCount();
?>
MERCI!
Balatharas Le 7 décembre 2016 à 14:33 (Édité le 1 janvier 1970 à 01:00)
Quand tu veut mettre du code, clique d'abord sur [CODE] c'est fait pour ça, c'est pas dur quand même...