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(); $this->display_contents(); $this->display_heading(); $this->display_menu(); $this->display_footer(); }
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:)