PHP İle Aktif Ziyaretçi Bilgileri ve Sayacı
- 17,944 Kez Okundu
- PHP & MySQL
- 17 Yorum
- 2015-12-27 01:45:05
Fazla söze gerek duymadan kısaca özetleyip kodları paylaşmak isterim.
Sitenize giren ziyaretçinin bilgilerini yani bunlar ;
- - Gerçek IP ,
- - Maskeli IP,
- - Aktif Ziyaretçi Sayısı,
- - Dün Tekil Toplam Sayısı ,
- - Bugün Tekil Toplam Sayısı,
- - Toplam Tekil Sayısı ,
- - Kullanılan Tarayıcı,
- - İşletim Sistemi
gibi bilgilere erişim sağlayacağımız bir kaç fonksiyonu da paylaşmış olacağım umarım işinize yarar.
Öncelikle veritabanı kodlarımıza göz atalım
// Online Tablosu İçin CREATE TABLE `online` ( `ip` VARCHAR(50) NOT NULL, `time` VARCHAR(50) NOT NULL, `OS` VARCHAR(75) NOT NULL, `browser` VARCHAR(255) NOT NULL , `useragent` VARCHAR(255) NOT NULL ) COLLATE='utf8_turkish_ci' ENGINE=MyISAM ; // Ziyaret Tablosu İçin CREATE TABLE `ziyaret` ( `id` INT(50) NOT NULL AUTO_INCREMENT, `ip` VARCHAR(75) NOT NULL, `tarih` VARCHAR(20) NOT NULL, `sondk` VARCHAR(20) NOT NULL, `OS` VARCHAR(75) NOT NULL, `browser` VARCHAR(255) NOT NULL, `useragent` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`) ) COLLATE='utf8_turkish_ci' ENGINE=MyISAM AUTO_INCREMENT=1 ;
Şimdi ise Tarayıcımızı tespit edeceğimiz fonksiyonumuz,
function browser_al($useragent = '') { if ($useragent == '') { $useragent = $_SERVER['HTTP_USER_AGENT']; } $browser_name = ''; $browsers = array(); $browsers[] = array('name' => 'AmigaVoyager', 'useragent' => 'AmigaVoyager'); $browsers[] = array('name' => 'Apple Generic', 'useragent' => 'CFNetwork'); $browsers[] = array('name' => 'Camino', 'useragent' => 'Camino'); $browsers[] = array('name' => 'Ensemble2', 'useragent' => 'Ensemble2'); $browsers[] = array('name' => 'Epiphany', 'useragent' => 'Epiphany'); $browsers[] = array('name' => 'Firefox', 'useragent' => 'Firefox'); $browsers[] = array('name' => 'Firefox', 'useragent' => 'Firefox/1.0'); $browsers[] = array('name' => 'Firefox', 'useragent' => 'Firefox/1.5'); $browsers[] = array('name' => 'Firefox', 'useragent' => 'BonEcho'); $browsers[] = array('name' => 'Firefox', 'useragent' => 'Firefox/2'); $browsers[] = array('name' => 'Firefox', 'useragent' => 'Firefox/3'); $browsers[] = array('name' => 'Firefox', 'useragent' => 'GranParadiso'); $browsers[] = array('name' => 'Firefox', 'useragent' => 'Phoenix'); $browsers[] = array('name' => 'Firefox', 'useragent' => 'Firebird'); $browsers[] = array('name' => 'Galeon', 'useragent' => 'Galeon'); $browsers[] = array('name' => 'Google Chrome', 'useragent' => 'chrome'); $browsers[] = array('name' => 'Google Chrome', 'useragent' => 'Chrome'); $browsers[] = array('name' => 'iCab', 'useragent' => 'iCab'); $browsers[] = array('name' => 'Iceweasel', 'useragent' => 'Iceweasel'); $browsers[] = array('name' => 'Internet Explorer', 'useragent' => 'MSIE'); $browsers[] = array('name' => 'Internet Explorer', 'useragent' => 'MSIE5.'); $browsers[] = array('name' => 'Internet Explorer', 'useragent' => 'MSIE6.'); $browsers[] = array('name' => 'Internet Explorer', 'useragent' => 'MSIE7.'); $browsers[] = array('name' => 'Internet Explorer', 'useragent' => 'MSIE8.'); $browsers[] = array('name' => 'Internet Explorer', 'useragent' => 'MSIE9.'); $browsers[] = array('name' => 'Internet Explorer', 'useragent' => 'MSIE10.'); $browsers[] = array('name' => 'Internet Explorer', 'useragent' => 'MSIE11.'); $browsers[] = array('name' => 'Internet Explorer', 'useragent' => 'MSIE.'); $browsers[] = array('name' => 'Internet Explorer Mobile', 'useragent' => 'IEMobile.'); $browsers[] = array('name' => 'K-Meleon', 'useragent' => 'K-Meleon'); $browsers[] = array('name' => 'Konqueror', 'useragent' => 'Konqueror'); $browsers[] = array('name' => 'Lynx', 'useragent' => 'Lynx'); $browsers[] = array('name' => 'Mozilla Minefield', 'useragent' => 'Minefield'); $browsers[] = array('name' => 'Netscape', 'useragent' => 'Netscape'); $browsers[] = array('name' => 'NewsCopier', 'useragent' => 'NewsCopier'); $browsers[] = array('name' => 'Opera', 'useragent' => 'Opera'); $browsers[] = array('name' => 'Pocket Internet Explorer', 'useragent' => 'MicrosoftPocketInternetExplorer'); $browsers[] = array('name' => 'Pocket Internet Explorer', 'useragent' => 'MSPIE'); $browsers[] = array('name' => 'Radianrss', 'useragent' => 'radianrss'); $browsers[] = array('name' => 'RssReader', 'useragent' => 'rssreader.com'); $browsers[] = array('name' => 'Apple Safari', 'useragent' => 'AppleSyndication'); $browsers[] = array('name' => 'Mobile Safari', 'useragent' => 'Mobile Safari'); $browsers[] = array('name' => 'SeaMonkey', 'useragent' => 'SeaMonkey'); $browsers[] = array('name' => 'Swiftweasel', 'useragent' => 'Swiftweasel'); $browsers[] = array('name' => 'Thunderbird', 'useragent' => 'Thunderbird'); $browsers[] = array('name' => 'Vienna', 'useragent' => 'Vienna'); foreach ($browsers as $browser) { if (stripos(strtolower($useragent), strtolower($browser['useragent'])) !== FALSE) { $browser_name = $browser['name']; } } unset($browsers, $browser, $useragent); if ($browser_name) { return $browser_name; } else { return false; } }
Hemen sonrasında İşletim Sistemimizi tespit edeceğimiz fonksiyonumuz,
function os_al($useragent1 = '') { if ($useragent1 == '') { $useragent1 = $_SERVER['HTTP_USER_AGENT']; } $os_name = ''; $oses = array(); $oses[] = array('name' => 'Windows 95', 'useragent1' => 'Windows 95'); $oses[] = array('name' => 'Windows 98', 'useragent1' => 'Windows 98'); $oses[] = array('name' => 'Windows NT', 'useragent1' => 'Windows NT'); $oses[] = array('name' => 'Windows 2000', 'useragent1' => 'Windows NT 5.0'); $oses[] = array('name' => 'Windows XP', 'useragent1' => 'Windows NT 5.1'); $oses[] = array('name' => 'Windows Vista', 'useragent1' => 'Windows NT 6.0'); $oses[] = array('name' => 'Windows 7', 'useragent1' => 'Windows NT 6.1'); $oses[] = array('name' => 'Windows 8', 'useragent1' => 'Windows NT 6.2'); $oses[] = array('name' => 'Windows 8.1', 'useragent1' => 'Windows NT 6.3'); $oses[] = array('name' => 'Windows Phone ', 'useragent1' => 'Windows Phone 8.0'); $oses[] = array('name' => 'Symbian ', 'useragent1' => 'SymbOS'); $oses[] = array('name' => '”Mac”', 'useragent1' => '”Mac”'); $oses[] = array('name' => '”Linux”', 'useragent1' => '”Linux”'); $oses[] = array('name' => 'Android', 'useragent1' => 'Android'); $oses[] = array('name' => 'Mac OS X', 'useragent1' => 'iPhone'); $oses[] = array('name' => 'Mac OS X', 'useragent1' => 'Mac OS X'); foreach ($oses as $os) { if (stripos(strtolower($useragent1), strtolower($os['useragent1'])) !== FALSE) { $os_name = $os['name']; } } unset($oses, $os, $useragent1); if ($os_name) { return $os_name; } else { return false; } }
Sırada ise kullanıcının Gerçek IP sini tespit etmeye geldi benim kullandığım fonksiyon aşağıda , ama buradaki fonksiyonları da kullanabilirsiniz.
function GetIP(){ if (!empty ($_SERVER['HTTP_CLIENT_IP'])) { $ipp = $_SERVER['HTTP_CLIENT_IP']; } else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ipp = $_SERVER['HTTP_X_FORWARDED_FOR']; } else if (!empty($_SERVER['REMOTE_ADDR'])) { $ipp = $_SERVER['REMOTE_ADDR']; } return $ipp; }
Şimdi de Maskeli IP bulalım,
echo 'Maskeli IP :'.$_SERVER['REMOTE_ADDR'];
Fonksiyonları kolay kullanabilmemiz için değişkenlere atadım
$tarayıcı= browser_al(); $os = os_al(); $ip = GetIP();
Fonksiyon kısmını hallettikten sonra sitemizde Aktif Kişi Sayısını bulalım,
@$past = time()-150; mysql_query("DELETE FROM online WHERE time < $past"); @$result = mysql_query("SELECT time FROM online WHERE ip='$ip'"); @$time = time(); if($row = mysql_fetch_array($result)){ mysql_query("UPDATE online SET time='$time',ip='$ip' WHERE ip='$ip'"); }else{ mysql_query("INSERT INTO online (ip,time,browser,OS,useragent) VALUES ('$ip','$time','$tarayıcı','$os','$genel')") or die(mysql_error()); } @$result = mysql_query("SELECT ip FROM online"); @$aktifkac = mysql_num_rows($result); echo 'Aktif Kişi Sayısı : ' .$aktifkac. '<br />';
Dünkü Ziyaretçi Sayısını bulalım şimdide,
@$baslat =date(Y."-".m."-".d); @$year =substr($baslat, 0,4); @$month =substr($baslat, 5, 2); @$day =substr($baslat, 8, 2); @$bitis =date("Y-m-d", mktime(0, 0, 0, $month, $day-1, $year)); @$sorgula = mysql_query("select tarih from ziyaret where tarih='$bitis'"); @$dunku = mysql_num_rows($sorgula); echo 'Dünkü Ziyaretçi Sayısı : '.$dunku.'<br />;
Bugünkü Ziyaretçi Sayısını bulalım,
@$bugun = date("Y-m-d"); @$sorgu = mysql_query("select tarih from ziyaret where tarih='$bugun'"); @$bugunku = mysql_num_rows($sorgu); echo 'Bugünkü Ziyaretçi Sayısı : '.$bugunku.'<br />;
Şimdi de Toplam Tekil Ziyaretçi Sayısını bulalım,
@$ipsi = GetIP(); @$tarih = date("Y-m-d "); @$genel = $_SERVER['HTTP_USER_AGENT']; @$tarayıcı= browser_al(); @$os = os_al(); @$sondk = date("H:i:s"); mysql_query("UPDATE ziyaret SET sondk='$sondk' WHERE tarih='$bugun' and ip='$ipsi'"); @$ipkontrol = mysql_query("select * from ziyaret where ip='$ipsi' order by id desc"); @$yaz = mysql_fetch_assoc($ipkontrol); @$vip = $yaz['ip']; @$vos = $yaz['OS']; @$vtarayıcı =$yaz['browser']; @$vgenel =$yaz['useragent']; @$vtarih= $yaz['tarih']; @$vsondk= $yaz['sondk']; @$bak = mysql_num_rows($ipkontrol); if($bak>0){ //if- if($vtarih<$tarih){ $kayit_1 = mysql_query("insert into ziyaret (ip,OS,browser,useragent,tarih,sondk) values ('$ipsi','$os','$tarayıcı','$genel','$tarih','$sondk')"); } } else{ @$kayit_2 = mysql_query("insert into ziyaret (ip,OS,browser,useragent,tarih,sondk) values ('$ipsi','$os','$tarayıcı','$genel','$tarih','$sondk')"); } @$toplamne = mysql_query("select * from ziyaret"); @$toplamziyaret = mysql_num_rows($toplamne); echo 'Toplam Tekil Ziyaretçi Sayısı : '.$toplamziyaret.'<br />;
echo 'Maskeli IP :'.$_SERVER['REMOTE_ADDR']; echo 'Gerçek IP :'. GetIP(); echo 'Kullanılan Tarayıcı :'.browser_al(); echo 'İşletim Sistemi :'.os_al();
Evet arkadaşlarbir şeyi belirmek istiyorum bazı değişkenler tanımları farklılık gösterebilir , çünkü bir çok projede kullandığım fonksiyonları toplama yaptım umarım sorunsuz çalışır.
Güzel Projelerde Kullanabilmeniz Dileğiyle. Sevgiyle Kalın...