Thursday, August 27, 2015

كلاس لحساب زوار موقعك

<?php
//http://www.swalif.net/softs/swalif45/softs228926
/////////////////////table///////////////////////////////
/*
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
*/
/*

<?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();
?>

*/
//////////////////////////////////////////////////////////

/**
 *
 * كلاس متقدم لحساب الزوار و الزيارات و احصائياتهما
 *
 * يقوم هذا الكلاس بحساب عدد زوار موقعك من خلال الايبي الخاص بهم
 * و كذلك يقوم باستخراج احصائيات كاملة عنهم .
 *
 * @المبرمج    عبدالله محمد ضياء الدين
 * @الاصدارة   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 database 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);
    }
}


?>

No comments:

Post a Comment