witam:
mam taki oto kod:
wywołanie funkcji counter_site() - zliczanie odwiedzin
public function display(){
$count=new counter_elements();
$count->counter_site();
$this->display_doctype();
$this->display_title();
$this->display_meta();
$this->display_key_words();
$this->display_description();
$this->display_style();
$this->display_scripts();
echo"</head>\n<body><div id=\"xyz\"><div id=\"main\" class=\"container\">"; $this->display_contents();
$this->display_heading();
$this->display_menu();
echo "</div><div class=\"container\">"; $this->display_footer();
echo"</div></div></body>\n</html>";
}
natomiast tu jest kod funkcji counter_site:
public function counter_site(){
$ip=$_SERVER['REMOTE_ADDR'];
$get=new data();
$connect=$get->connect_bd();
//usuwa ip ktore jest juz w bazie duzej niż godzina
$sql1="delete from site_counter where counter_time < DATE_SUB(NOW(),INTERVAL 1 HOUR)";
$connect->query($sql1);
//szuka w bazie czy istnieje ip który odwiedza wasnie nasza strone
$quest="select counter_time from site_counter where ip=INET_ATON('".$ip."')";
$result=$connect->query($quest);
if(!$result){
}
//gdy juz istnieje podany ip - aktualizuje date wejscia osoby / tak aby nie zliczalo jej przez nastepna godzinę
if($result->num_rows==1)
{
$sql="update site_counter set counter_time=NOW() where ip=INET_ATON('".$ip."')";
$result=$connect->query($sql);
if(!$result){
};
}
else
{
// jesli nie istnieje ip odwiedzajacego wstawia go do bazy z aktualna godzina
$sql="insert into site_counter (counter_time, ip) values (NOW(),INET_ATON('".$ip."'))";
$result=$connect->query($sql);
if(!$result){
}
// zwiekszenie licznika
$sql="update site_info set counter=counter+1";
$result=$connect->query($sql);
if(!$result){
}
}
}
problem polega na tym, iż w zależności przez jakie łącze internetowe wchodze na swoją witryne .. raz zlicza mi tylko jednokrotnie moje wejście w ciągu godziny.. a na innym połączeniu za kazdym odświeżeniem strony dodaje mi licznik ( nawet czasami jedno odświeżenie powoduje zwiekszenie licznika o 2)
gdzie mam tu błąd: pomocy:)