Warning: Function get_magic_quotes_gpc() is deprecated in /home/forumbs/public_html/includes/class_core.php on line 1960
كلاس : لحساب عدد زوار موقعك بالايبي و كذلك احصائيات زوار اليوم و الشهر و العام [الأرشيف] - منتديات بانى ستار

المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : كلاس : لحساب عدد زوار موقعك بالايبي و كذلك احصائيات زوار اليوم و الشهر و العام



walid_8281500
03-23-2009, 08:46 PM
بسم الله الرحمن الرحيم

وددت ان اعرض عليكم كلاس من برمجتى بالكامل لحساب عدد زوار موقعك بالايبي و كذلك احصائيات زوار اليوم و الشهر و العام و فكرته بسيطة جدا و مفيدة للمبتدئين امثالى بلغة php و ساشرحها لكم بالتفصيل على الكود

اولا : قم بتنفيذ هذا الامر لقاعدة البيانات و هو يمثل انشاء جدول يحوى ايبي الزائر و يوم و شهر و سنة و وقت دخوله للموقع الخاص بك كما يلي :



-----------------------------------------------------------------------------+
| Table | Create Table |
+---------+------------------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-----------------------------------------------------------------------------+
| counter | CREATE TABLE `counter` (
`id` int(11) NOT NULL auto_increment,
`ip` varchar(100) default NULL,
`day` int(11) default NULL,
`month` int(11) default NULL,
`year` year(4) default NULL,
`time` varchar(100) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 |
+---------+------------------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-----------------------------------------------------------------------------+

ثانيا : الكلاس و شرحه موجود داخل اسطر الكلاس و يجب عليك ان تعدل بينات قاعدة البيانات الخاصة بك اولا قبل البدء فى تشغيله و سم الملف : count.class.php



<?php

/**
*
* كلاس متقدم لحساب الزوار و الزيارات و احصائياتهما
*
* يقوم هذا الكلاس بحساب عدد زوار موقعك من خلال الايبي الخاص بهم
* و كذلك يقوم باستخراج احصائيات كاملة عنهم .
*
* @المبرمج عبدالله محمد ضياء الدين
* @الاصدارة 0,01 بيتا
* @الترخيص مجانى
* @القسم عداد زوار
* @مثال example.php
* @أنشئ 17/5/2008 يوم السبت
**/


class counter
{

/**
* المعلومات الخاصة بالاتصال بقاعدة البيانات.
*
* @vars string
* @access private
**/
var $db_HOST = "localhost"; //ادخل المستضيف
var $db_USER = "root"; // ادخل اسم المستخدم لقاعدة البيانات
var $db_PASS = ""; // الرقم السري لقاعدة البيانات
var $db = "counter"; //اسم قاعدة البيانات
var $dbc;


/**
* جلب أيبي الزائر
*
* @vars string
* @access private
**/
var $ip;


/**
* جلب اليوم
*
* @vars string
* @access public
**/
var $day;


/**
* جلب السنة
*
* @vars string
* @access public
**/
var $year;


/**
* جلب الشهر
*
* @vars string
* @access public
**/
var $month;


/**
* جلب الوقت
*
* @vars string
* @access public
**/
var $time;


///////////////////////////////////////////////////////////////////
/**
* Constructor
* دالة البناء للكلاس
* @access public
**/
function counter()
{
$this->ip = getenv('REMOTE_ADDR');
$this->day = date('d');
$this->month = date('m');
$this->year = date('Y');
$this->time = time();
// استدعاء لدالة الاتصال بقاعدة البيانات
$this->connect_db();
}
///////////////////////////////////////////////////////////////////
/**
* دالة الاتصال بقاعدة البيانات
*
* @access private
**/
function connect_db()
{
$this->dbc = @mysql_connect($this->db_HOST, $this->db_USER, $this->db_PASS) or
die("open <b>count.class.php</b> and edit your data**** informaion ");
$m = @mysql_select_db($this->db, $this->dbc);
return ($dbc);
}
///////////////////////////////////////////////////////////////////
/**
* دالة للتحقق من ايبي الزائر و ادخال بياناته لقاعدة البيانات ليتم حسابها
*
* @access public
**/
function check_insert()
{
//البحث داخل قادة البيانات للتاكد من ان اىبي الزائر لم يدخل مسبقا طوال هذا اليوم
$query = "select * from counter;";
$result = mysql_query($query, $this->dbc);
$num = mysql_num_rows($result);
$check = "select * from counter where ip='$this->ip' and day ='$this->day' and month='$this->month' and year='$this->year';";
$result2 = mysql_query($check, $this->dbc);
$num2 = mysql_num_rows($result2);
//ان كانت بيانات الزائر موجودة من قبل اغلق الاتصال بالقاعدة
if ($num2 != 0)
{
mysql_close($this->dbc);
exit();
}
//ادخال بينات الزائر كاملة لقاعدة البيانات
$insert = "insert into counter (ip,day,month,year,time) values('$this->ip','$this->day','$this->month','$this->year','$this->time')";
mysql_query($insert, $this->dbc);
}
///////////////////////////////////////////////////////////////////
/**
* دالة لحساب اجمالة زوار موقعك عن طريق الايبي الخاص بكل شخص
*
* @access public
**/
function all_visit()
{
//اختيار الايبيهات المختلفة بقاعدة البيانات و حساب عددها
$select = "SELECT DISTINCT * FROM counter GROUP BY ip;";
$result = mysql_query($select, $this->dbc);
echo mysql_num_rows($result);
}
///////////////////////////////////////////////////////////////////
/**
* دالة لحساب اجمالى زوار موقعك هذا اليوم
*
* @access public
**/
function visit_today()
{
//اختيار الصفوف التى تطابق تاريخ اليوم
$select = "select * from counter where day ='$this->day' and month='$this->month' and year='$this->year'";
$result = mysql_query($select, $this->dbc);
echo mysql_num_rows($result);
}
///////////////////////////////////////////////////////////////////
/**
* دالة لحساب احمالى زوار موقعك هذا الشهر
*
* @access public
**/
function visit_month()
{
//اختيار الصفوف التى تطابق هذا الشهر و العام و مختلفة الايبي
$select = "select DISTINCT * from counter where month ='$this->month' and year='$this->year' GROUP BY ip;";
$result = mysql_query($select, $this->dbc);
echo mysql_num_rows($result);
}
///////////////////////////////////////////////////////////////////
/**
* دالة لحساب اجمالى زوار موقعك هذا العام
*
* @access public
**/
function visit_year()
{
//اختيار الصفوف التى تطابق العام و مختلفة الايبي
$select = "select DISTINCT * from counter where year ='$this->year' GROUP BY ip;";
$result = mysql_query($select, $this->dbc);
echo mysql_num_rows($result);
}
///////////////////////////////////////////////////////////////////
/**
* دالة لحساب اجمالى زياراتك للموقع
*
* @access public
**/
function visit_u()
{
//اختيار كافة الصفوف التى تحوى الايبي الخاص بالزائر
$select = "select * from counter where ip ='$this->ip'";
$result = mysql_query($select, $this->dbc);
echo mysql_num_rows($result);
}
///////////////////////////////////////////////////////////////////
/**
* دالة لاغلاق الاتصال بقاعدة البيانات بعد تنفيذ الاستعلامات بالاعلى
*
* @access public
**/
function close_db()
{
//اغلاق الاتصال بقاعدة البيانات
$this->dbc = mysql_close($this->dbc);
}
}


?>

ثالثا طريقة الاستعمال كما هو موضح بالكود التالى :



<?php
//استدعاء كلاس الخاص بعداد الزوار
require_once('count.class.php');
// ادخال الكلاس داخل المتغير count
$count = new counter ;
// حساب اى من عدد الزوار فى اى وقت
echo "<html dir='rtl' encoding='windows-1256'>";
echo "<b>اجمالى الزوار</b> : ";
$count->all_visit();
echo "<br /><b>زوار اليوم</b> : ";
$count->visit_today();
echo "<br /><b>عدد زوار الشهر</b> : ";
$count->visit_month();
echo "<br /><b>عدد زوار السنة</b> : ";
$count->visit_year();
echo "<br /><b>عدد زياراتك</b> : ";
$count->visit_u();
echo "</html>";
// عمل فحص للقاعدة و ادخال بيانات الزائر
// ******* يجب ان يكون استدعاء هذه الدالة بعد الاحصائيات و ليس قبلها
$count->check_insert();
// اغلاق الاتصال بقاعدة البيانات
$count->close_db();
?>