sirjan-designe
کاربر تازه وارد
سلام دوستان من اولين اسكريپتم رو بعد از سه هفته كار كردن با پي اچ پي نوشتم و گذاشتم اينجا تا شما عيب و ايرادهايي رو كه داره بهم بگيد.اين اسكريپت يك شمارنده هست كه با استفاده از بانك اطلاعاتي و تابع تاريخ شمسي تاريخ ورود هر كاربر و آي آدرس و ساعت وردش رو وارد بانك اطلاعاتي ميكنه.اگر آي پي از قبل توي ركوردهاي table ويزيتور ثبت شده باشه اونو به table هيتس ميفرسته و يكي ديگه از كارهايي كه من انجام دادم اينه كه نشون ميده كاربر از كجا اومده البته اگر كاربر از هاست خودم اومده باشه يعني لينك توي سايت خودم باشه به بانك اطلاعاتي نميفرسته اينم واسه اين گذاشتم كه فقط ريفر هاي سايتهاي ديگه رو بهم بده.اگر هم ميبينيد كه يك كم ساده هست آخه من هنوز تازه كارم در ضمن تا اينجا من هر چي ياد گرفتم مديون سالار كابلي هستم آخه اون بود كه منو توي پي اچ پي راه انداخت.
كد مربوط به جدولهاي بانك اطلاعاتي
كد ارتباط با بانك اطلاعاتي كه بايد با اين نام ذخيره بشه mysql_connect.inc.php
كد مربوط به اضافه شدن مقدار به بانك اطلاعاتي
كد مربوط به نمايش اطلاعات از بانك اطلاعاتي
كلاس مربوط به نمايش افراد آنلاين كه بايد با اين اسم ذخيره بشه usersOnline.class.php
در ضمن فايلهاش رو هم گذاشتم
كد مربوط به جدولهاي بانك اطلاعاتي
کد:
CREATE TABLE Visitor (
id mediumint(20) NOT NULL auto_increment,
ip varchar(200),
second INT NOT NULL,
min INT NOT NULL,
hours INT NOT NULL,
day INT NOT NULL,
month INT NOT NULL,
year INT NOT NULL,
site VARCHAR (255),
PRIMARY KEY (id)
) TYPE=MyISAM;
CREATE TABLE Hits (
id mediumint(20) NOT NULL auto_increment,
ip varchar(200),
second INT NOT NULL,
min INT NOT NULL,
hours INT NOT NULL,
day INT NOT NULL,
month INT NOT NULL,
year INT NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
CREATE TABLE `useronline` (
`id` int(10) NOT NULL auto_increment,
`ip` varchar(15) NOT NULL default '',
`timestamp` varchar(15) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `id`(`id`)
) TYPE=MyISAM COMMENT='' AUTO_INCREMENT=1 ;
كد ارتباط با بانك اطلاعاتي كه بايد با اين نام ذخيره بشه mysql_connect.inc.php
PHP:
<?php
$host="db_host";
$user="db_user";
$pass="db_pass";
$db="db_name";
$mysql_link=mysql_connect($host,$user,$pass);
mysql_select_db($db,$mysql_link);
?>
كد مربوط به اضافه شدن مقدار به بانك اطلاعاتي
PHP:
<?
require_once('mysql_connect.inc.php');
require_once ('jdf.php');
$year=jdate("Y");
$month=jdate("m");
$day=jdate("d");
$hours=date("h");
$min=date("i");
$second=date("s");
$referer = $_SERVER['HTTP_REFERER'];
$adress = explode("www.", $_SERVER['SERVER_NAME']);
$query = "SELECT ip FROM Visitor";
$result = mysql_query($query);
while( $list = mysql_fetch_array($result)){
$ip = $GLOBALS['REMOTE_ADDR'];
if($ip == $list['ip']){
$sql="insert into Hits (year,month,day,hours,min,second,ip) values
('$year','$month','$day','$hours','$min','$second','$REMOTE_ADDR')";
mysql_query($sql);
$error = TRUE;
return false;
}
}
if(!$error){
if ($referer != "")
{
if (!eregi($adress[1], $referer))
{
$addreferer = "INSERT INTO Visitor (site) VALUES ('$referer')";
mysql_query($addreferer);
}
}
$sql="insert into Visitor (year,month,day,hours,min,second,ip,site) values
('$year','$month','$day','$hours','$min','$second','$REMOTE_ADDR','$ref')";
mysql_query($sql);
}
?>
كد مربوط به نمايش اطلاعات از بانك اطلاعاتي
PHP:
<?php
//this script writed Ramin Arabzadeh.this is first my script
require_once('mysql_connect.inc.php');
require_once ('jdf.php');
$year= jdate("Y");
$month=jdate("m");
$day=jdate("d");
$hours=date("h");
$min=date("i");
$second=date("s");
$month1=($month-1);
$day1=($day-1);
$hours1=($hours-1);
$year_now_hits=mysql_query("SELECT * FROM Hits WHERE year='$year'");
$row_year_now_hits=mysql_num_rows($year_now_hits);
$year_now_visitor=mysql_query("SELECT * FROM Visitor WHERE year='$year'");
$row_year_now_visitor=mysql_num_rows($year_now_visitor);
$month_now_hits=mysql_query("SELECT * FROM Hits WHERE month=$month and year=$year");
$row_month_now_hits=mysql_num_rows($month_now_hits);
$month_now_visitor=mysql_query("SELECT * FROM Visitor WHERE month=$month and year=$year");
$row_month_now_visitor=mysql_num_rows($month_now_visitor);
$last_month_hits=mysql_query("SELECT * FROM Hits WHERE month=$month1 and year=$year");
$row_last_month_hits=mysql_num_rows($last_month_hits);
$last_month_visitor=mysql_query("SELECT * FROM Visitor WHERE month=$month1 and year=$year");
$row_last_month_visitor=mysql_num_rows($last_month_visitor);
$today_hits=mysql_query("SELECT * FROM Hits WHERE day=$day and month=$month and year=$year");
$row_today_hits=mysql_num_rows($today_hits);
$today_visitor=mysql_query("SELECT * FROM Visitor WHERE day=$day and month=$month and year=$year");
$row_today_visitor=mysql_num_rows($today_visitor);
$yesterday_hits=mysql_query("SELECT * FROM Hits WHERE day=$day1 and month=$month and year=$year ");
$row_yesterday_hits=mysql_num_rows($yesterday_hits);
$yesterday_visitor=mysql_query("SELECT * FROM Visitor WHERE day=$day1 and month=$month and year=$year ");
$row_yesterday_visitor=mysql_num_rows($yesterday_visitor);
$last_one_hours_hits=mysql_query("SELECT * FROM Hits WHERE hours=$hours1 and year=$year and month=$month and day=$day ");
$row_last_one_hours_hits=mysql_num_rows($last_one_hours_hits);
include_once ("usersOnline.class.php");
$visitors_online = new usersOnline();
print " تعداد افراد آنلاين : " ."<b>". $visitors_online->count_users() ."</b></p>";
print "<p>بازديدكنندگان امسال : "."<b>".$row_year_now_visitor ."</b></p>";
print "<p>بازديدهاي امسال : "."<b>".$row_year_now_hits ."</b></p>";
print "<p>بازديدكنندگان اين ماه : "."<b>".$row_month_now_visitor."</b></p>";
print "<p>بازديدهاي اين ماه : "."<b>".$row_month_now_hits."</b></p>";
print "<p>بازديدكنندگان ماه گذشته : "."<b>".$row_last_month_visitor."</b></p>";
print "<p>بازديدهاي ماه گذشته : "."<b>".$row_last_month_hits."</b></p>";
print "<p>بازديدكنندگاه امروز : "."<b>".$row_today_visitor ."</b></p>";
print "<p>بازديدهاي امروز : "."<b>".$row_today_hits ."</b></p>";
print "<p>بازديدكنندگان ديرورز : "."<b>".$row_yesterday_visitor ."</b></p>";
print "<p>بازديدهاي ديروز : "."<b>".$row_yesterday_hits ."</b></p>";
print "<p>بازديدهاي 1 ساعت پيش : "."<b>".$row_last_one_hours_hits ."</b></p>";
?>
كلاس مربوط به نمايش افراد آنلاين كه بايد با اين اسم ذخيره بشه usersOnline.class.php
PHP:
<?php
//this script writed Ramin Arabzadeh.this is first my script
class usersOnline {
var $timeout = 600;
var $count = 0;
function usersOnline () {
$this->timestamp = time();
$this->ip = $this->ipCheck();
$this->new_user();
$this->delete_user();
$this->count_users();
}
function ipCheck() {
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
}
elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_X_FORWARDED')) {
$ip = getenv('HTTP_X_FORWARDED');
}
elseif (getenv('HTTP_FORWARDED_FOR')) {
$ip = getenv('HTTP_FORWARDED_FOR');
}
elseif (getenv('HTTP_FORWARDED')) {
$ip = getenv('HTTP_FORWARDED');
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
function new_user() {
$insert = mysql_query ("INSERT INTO useronline(timestamp, ip) VALUES ('$this->timestamp', '$this->ip')");
}
function delete_user() {
$delete = mysql_query ("DELETE FROM useronline WHERE timestamp < ($this->timestamp - $this->timeout)");
}
function count_users() {
$count = mysql_num_rows ( mysql_query("SELECT DISTINCT ip FROM useronline"));
return $count;
}
}
?>
در ضمن فايلهاش رو هم گذاشتم