MMSHFE
سه شنبه 28 دی 1389, 13:59 عصر
با سلام، دوستان گرامي خواستم بعد از اينهمه آموزش ساخت كد شمارنده سايت كه هر كدوم يك روش رو پيشنهاد ميكنن، من هم روش خودم رو بگم كه چند ساله دارم استفاده ميكنم و علاوه به انعطاف پذيري بالايي كه داره، حجم ديتابيس رو هم بالا نميبره. خوب مستقيم ميريم سراغ كد:
<?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");
}
توي كد بالا، همونطور كه ميبينيد، هم تعداد كلي بازديد و هم آمار تفكيكي برحسب نوع مرورگر و نوع سيستم عامل استخراج ميشه و به ركوردهاي مربوطه اضافه ميشه. تنها كار باقيمانده، كد MySQL مربوط به جداول هست:
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);
اميدوارم كه خوشتون بياد. ضمناً خوشحال ميشم نظراتتون رو بدونم.
موفق و مؤيد باشيد.
<?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");
}
توي كد بالا، همونطور كه ميبينيد، هم تعداد كلي بازديد و هم آمار تفكيكي برحسب نوع مرورگر و نوع سيستم عامل استخراج ميشه و به ركوردهاي مربوطه اضافه ميشه. تنها كار باقيمانده، كد MySQL مربوط به جداول هست:
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);
اميدوارم كه خوشتون بياد. ضمناً خوشحال ميشم نظراتتون رو بدونم.
موفق و مؤيد باشيد.