le 17/02/2009 à 08:17
jackbocar
Bonjour,
J’ai une erreur qui se produit de temps en temps sur mon serveur de test après un rafraichissement de page et sur UBUNTU : « violation répétition de l’adresse IP »
Ca ne se produit pas sur mon serveur de test Windows et Wampserveur.
Voyez-vous une erreur dans mon code ?
Merci de votre aide.
Jack Bocar
Classe connexion
Code visiteurs connectés
J’ai une erreur qui se produit de temps en temps sur mon serveur de test après un rafraichissement de page et sur UBUNTU : « violation répétition de l’adresse IP »
Ca ne se produit pas sur mon serveur de test Windows et Wampserveur.
Voyez-vous une erreur dans mon code ?
Merci de votre aide.
Jack Bocar
Classe connexion
<?php
class db{
private static $instance = NULL;
private function __construct() {
}
public static function getInstance() {
if (!self::$instance)
{
self::$instance = new PDO("mysql:host=localhost;dbname=my_counter", 'login', 'password');;
self::$instance-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return self::$instance;
}
private function __clone(){
}
} /*** END class ***/
?>
Code visiteurs connectés
<?php
try {
$tps_max_connex = 60;
$temps_actuel = date("U");
$result = DB::getInstance()->query('SELECT count(*) FROM visiteurs_online WHERE ip= "'.mysql_escape_string($_SERVER['REMOTE_ADDR']).'"');
foreach($result as $data)
$dbh = null;
if ($data[0]) {
$result = DB::getInstance()->query('UPDATE visiteurs_online SET time = "'.$temps_actuel.'" WHERE ip = "'.mysql_escape_string($_SERVER['REMOTE_ADDR']).'"');
}
else {
$result = DB::getInstance()->query('INSERT INTO visiteurs_online VALUES("'.mysql_escape_string($_SERVER['REMOTE_ADDR']). '", "'.$temps_actuel.'")');
}
$heure_max = $temps_actuel - $tps_max_connex;
$result2 = DB::getInstance()->query('DELETE FROM visiteurs_online where time < "'.$heure_max.'"');
?>
<?php
$result = DB::getInstance()->query('SELECT count(*) FROM visiteurs_online');
$dbh = null;
echo '<span class="visites">Actuellement <em class="bold">' , $data[0] , ' </em> visiteur(s) sur le site </span>';
echo '<span class="visites"> - Votre adresse IP est : <em class="bold"> ';
echo htmlentities($_SERVER["REMOTE_ADDR"], ENT_QUOTES);
echo '</em> </span>';
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>