درخواست كد كانتر php

Hyper

Active Member
اساتيد محترم سلام

اگه كد كانتر سايت ( هرچه كاملتر بهتر )
رو با php سراغ داشته باشيد
ممنون ميشم لطف كنيد
 

iman_ebru

Active Member
منبع : وبلاگ علي خليلي

در اين قسمت به ساخت يك شمارنده ساده (Hit Counter) با استفاده از php و MySQL مي پردازيم.
قبل از هر چيز با كمك PhpMyAdmin جدولي با ساختار زير ايجاد كنيد:

کد:
 # Table structure for table `counter` 
# 

CREATE TABLE `counter` ( 
  `id` tinyint(4) NOT NULL default '1', 
  `total` bigint(20) unsigned NOT NULL default '0', 
  `yesterday` int(10) unsigned NOT NULL default '0', 
  `today` int(10) unsigned NOT NULL default '0', 
  `date` date default NULL 
) TYPE=MyISAM; 

# 
# Dumping data for table `counter` 
# 

INSERT INTO `counter` VALUES (1, 0, 0, 0, NOW());

اين جدول شامل يك فيلد مشخصه، سه فيلد براي شمارش بازديدها و يك فيلد براي تاريخ مي باشد.توجه داشته باشيد كه اين جدول، يك record بيشتر ندارد و عمليات بر روي جدول با Update كردن همين ركورد انجام مي شود. به عنوان پيش فرض مقادير صفر و همچنين تاريخ جاري را در اين ركورد ثبت مي كنيم.
حالا كه ساختار ذخيره داده ها را مشخص كرديم به نوشتن كد برنامه مي پردازيم:

کد:
//اطلاعات لازم براي اتصال به پايگاه داده 
$db_user="username"; 
$db_pass="password"; 
$db_name="MyDB"; 
//اتصال به پايگاه داده 
$con=mysql_connect('localhost',$db_user,$db_pass); 
mysql_select_db($db_name,$con);

اولين مرحله كار ، اتصال به پايگاه داده مي باشد.در كد بالا بايد اطلاعات مربوط به اتصال را به درستي وارد كنيد و الا اجراي برنامه در همين جا متوقف خواهد شد!

کد:
//دريافت نتايج از جدول 
$result=mysql_query("SELECT * FROM counter"); 
$row=mysql_fetch_array($result); 
$total=$row['total']; 
$yesterday=$row['yesterday']; 
$today=$row['today']; 
$date=$row['date']; 
list($year,$month,$day)=split('-',$date);

در اين مرحله اطلاعات قبلي ذخيره شده در پايگاه داده را بازيابي مي كنيم. تابع split رشته اي را به عنوان آرگومان دوم خود دريافت كرده و طبق آرگومان اول كه حاوي كاراكتر جداكننده مي باشد آن را تقسيم مي كند و نتيجه را در آرايه اي به ما برمي گرداند. دستورlist عناصر آرايه را به متغيرهاي ليست، نسبت مي دهد.

کد:
 $CurrentDate=date("Y-m-d"); 
list($CurrentYear,$CurrentMonth,$CurrentDay)=split('-',$CurrentDate);

در اين قسمت با استفاده از تابع date زمان جاري را بدست مي آوريم.توجه داشته باشيد كه آرگومان اين تابع فرمت دريافت تاريخ را مشخص مي كند.

کد:
//تابع به روزرساني جدول 
function Update($today,$yesterday,$total,$date){ 
    mysql_query("UPDATE counter SET today='$today',yesterday='$yesterday',total='$total' ,date='$date' WHERE id=1"); 
}

تابع Update وظيفه به روزرساني جدول را بر عهده دارد.اين تابع ، مقادير فيلدها را بر اساس پارامترهاي دريافتي تنظيم مي كند.

کد:
//مقايسه تاريخ جاري با تاريخ ذخيره شده در جدول و انجام محاسبات لازم 
$total++; 
if($CurrentYear==$year){ 
    if($CurrentMonth==$month){ 
        if($CurrentDay==$day){ 
            $today++; 
            Update($today,$yesterday,$total,$CurrentDate); 
        }else{ 
            if($CurrentDay==++$day){ 
                $yesterday=$today; 
                $today=1; 
                Update($today,$yesterday,$total,$CurrentDate);         
            }else{ 
                $yesterday=0; 
                $today=1; 
                Update($today,$yesterday,$total,$CurrentDate); 
            } 
        }     
    }else{ 
        if($CurrentMonth==++$month){ 
            $yesterday=$today; 
            $today=1; 
            Update($today,$yesterday,$total,$CurrentDate);                     
        }else{ 
            $yesterday=0; 
            $today=1; 
            Update($today,$yesterday,$total,$CurrentDate);         
        } 
    }     

} 
else{ 
    if($CurrentYear==++$year){ 
        $yesterday=$today; 
        $today=1; 
        Update($today,$yesterday,$total,$CurrentDate);             
    } 
    else{ 
    $yesterday=0; 
    $today=1; 
    Update($today,$yesterday,$total,$CurrentDate); 
    } 
}

هسته اصلي برنامه، قسمت بالا مي باشد.اين قسمت در واقع تمرين ساختارهاي شرطي تو در تو مي باشد. دستورات مقايسه اي زمان جاري را با زمان ذخيره شده قبلي مقايسه مي كنند و طبق آنها عمل شمارش را انجام مي دهند.سپس با استفاده از تابع Update عمل به روزرساني جدول صورت مي گيرد.

کد:
 //بازيابي مجدد اطلاعات از جدول 
$result=mysql_query("SELECT * FROM counter"); 
$row=mysql_fetch_array($result); 
$total=$row['total']; 
$yesterday=$row['yesterday']; 
$today=$row['today'];

در آخر كار، يك پرس و جوي ديگر انجام مي دهيم و اطلاعات به روز شده را دريافت مي كنيم و در متغيرهاي مربوطه درج مي كنيم.براي نمايش شمارنده، به صورت زير عمل مي كنيم:

کد:
 //نمايش شمارنده 
echo "today:<strong>$today</strong><br>"; 
echo"yesterday: <strong> $yesterday</strong><br>"; 
echo"total:<strong> $total</strong>";

حالا مي توانيد كدهاي بالا را در فايلي به نام counter.php ذخيره كنيد و آن را آزمايش كنيد. با استفاده از كد زير مي توانيد اين فايل را به صفحه اصلي سايت خود ضميمه كنيد:

کد:
<?php 
include_once("counter.php"); 
?>

فايل سورس برنامه به همراه ساختار جدول از اینجا قابل دريافت است.

اگر كسي مشكل خاصي هم داشت بگه تا بيشتر و بهتر كمكش كنم.

ايمان
 

Hyper

Active Member
مثل هميشه شما فوق العاده ايد

خوب علاقمندان به ابرو گوندش همشون اينجورين :D
 

siavashmusic

Active Member
سلام
آيا اين كد مثل كانتر مجيد آنلاين هست كه انلاين هاي سايت و انجمن رو به صورت جدا مشخص ميكنه اگر غير از اينه كار كردش چطوره و مسير آپلودش توي سايت كجاس
من مي خوام اين كانتر در صفحه اول سايتم باشه تا آنلاين هاي انجمن رو نشون بده اگر انلاين هاي سايت رو هم جداگونه نشون بده عاليه
 

جدیدترین ارسال ها

بالا