MMSHFE
Active Member
با سلام، دوستان گرامي خواستم بعد از اينهمه آموزش ساخت كد شمارنده سايت كه هر كدوم يك روش رو پيشنهاد ميكنن، من هم روش خودم رو بگم كه چند ساله دارم استفاده ميكنم و علاوه به انعطاف پذيري بالايي كه داره، حجم ديتابيس رو هم بالا نميبره. خوب مستقيم ميريم سراغ كد:
توي كد بالا، همونطور كه ميبينيد، هم تعداد كلي بازديد و هم آمار تفكيكي برحسب نوع مرورگر و نوع سيستم عامل استخراج ميشه و به ركوردهاي مربوطه اضافه ميشه. تنها كار باقيمانده، كد MySQL مربوط به جداول هست:
اميدوارم كه خوشتون بياد. ضمناً خوشحال ميشم نظراتتون رو بدونم.
موفق و مؤيد باشيد.
PHP:
<?php
require_once("config.php");
$agent=$_SERVER["HTTP_USER_AGENT"];
if((ereg("Nav",$agent)
|| ereg("Gold",$agent)
|| ereg("X11",$agent)
|| ereg("Netscape",$agent))
&& !ereg("MSIE",$agent)
&& !ereg("Mozilla",$agent)
&& !ereg("Konqueror",$agent)) $browser = "Netscape";
elseif(ereg("Mozilla",$agent)
|| eregi("FireFox",$agent)
|| eregi("Bon.Echo",$agent)
&& !ereg("MSIE",$agent)) $browser = "FireFox";
elseif(ereg("MSIE",$agent)) $browser = "MSIE";
elseif(ereg("Lynx",$agent)) $browser = "Lynx";
elseif(ereg("Opera",$agent)) $browser = "Opera";
elseif(ereg("WebTV",$agent)) $browser = "WebTV";
elseif(ereg("Konqueror",$agent)) $browser = "Konqueror";
elseif(eregi("google",$agent)) $browser = "Chrome";
elseif(eregi("bot",$agent)
|| ereg("Slurp",$agent)
|| ereg("Scooter",$agent)
|| eregi("Spider",$agent)
|| eregi("Infoseek",$agent)) $browser = "Bot";
else $browser = "Other";
if(ereg("Win",$agent)) $os = "Windows";
elseif((ereg("Mac",$agent))
|| (ereg("PPC",$agent))) $os = "Mac";
elseif(ereg("Linux",$agent)) $os = "Linux";
elseif(ereg("FreeBSD",$agent)) $os = "FreeBSD";
elseif(ereg("SunOS",$agent)) $os = "SunOS";
elseif(ereg("IRIX",$agent)) $os = "IRIX";
elseif(ereg("BeOS",$agent)) $os = "BeOS";
elseif(ereg("OS/2",$agent)) $os = "OS/2";
elseif(ereg("AIX",$agent)) $os = "AIX";
else $os = "Other";
try
{
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$query="UPDATE `counter` SET `count`=`count`+1"
$query.=" where (`type`='Total' AND `var`='Hits')"
$query.=" OR (`type`='Browser' AND `var`='$browser')"
$query.=" OR (`type`='OS' AND `var`='$os')";
$result=mysql_query($query);
}
catch(Exception $error)
{
die($error->getMessage()."\n");
}
کد:
CREATE TABLE `counter` (
`ID` int(11) NOT NULL,
`Type` longtext collate utf8_bin NOT NULL,
`Var` longtext collate utf8_bin NOT NULL,
`Count` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO `counter` (`ID`, `Type`, `Var`, `Count`) VALUES
(1, 'Total', 'Hits', 0),
(2, 'Browser', 'Netscape', 0),
(3, 'Browser', 'FireFox', 0),
(4, 'Browser', 'MSIE', 0),
(5, 'Browser', 'Lynx', 0),
(6, 'Browser', 'Opera', 0),
(7, 'Browser', 'WebTV', 0),
(8, 'Browser', 'Konqueror', 0),
(9, 'Browser', 'Chrome', 0),
(10, 'Browser', 'Bot', 0),
(11, 'Browser', 'Other', 0),
(12, 'OS', 'Windows', 0),
(13, 'OS', 'Mac', 0),
(14, 'OS', 'Linux', 0),
(15, 'OS', 'FreeBSD', 0),
(16, 'OS', 'SunOS', 0),
(17, 'OS', 'IRIX', 0),
(18, 'OS', 'BeOS', 0),
(19, 'OS', 'OS/2', 0),
(20, 'OS', 'AIX', 0),
(21, 'OS', 'Other', 0);
موفق و مؤيد باشيد.