النتائج 1 إلى 8 من 8

الموضوع: برمجة المتواجدون الأن خطوة خطوة

  1. #1

    برمجة المتواجدون الأن خطوة خطوة



    بسم الله الرحمان الرحيم
    قبل ان نتكلم عن الأكود لازم نفهم كيفية برمجة المتواجدون الأن
    على الأقل سنحتاج في درسنا اليوم جدول يحتوي على حقلين فقط
    الحقل الأول لتخزين عناوين الأيبي
    الحقل الثاني لتخزين 'وقت الزيارة ناقص خمس دقائق'
    اذا دخل الزائر الى الصفحة يتم البرنامج بمسح صف من الحقل اذا كان يطابق رقم الأيبي الخاص بالزائر لعدم تكرار الصفوف في القاعدة لاننا سنحب عدد الصفوف في الجدول لكي ترجع لنا نتيجة المتواجدون الأن
    واذا كان الوقت المسجل في صف او عدة صفوف تخزين الوقت اصغر من 'الوقت الأن ناقص خمس دقائق' سيمسح تلك الصفوف جميعا لعدم تكرار الصفوف بدون زوار
    ما ذا فهمت من 'الوقت الأن ناقص خمس دقائق'
    مثال فقط :
    الوقت الأن 200 ناقص 5 يساوي 195 سيتم ادخال هذا الرقم الى القاعدة
    لن يتم مسح صف هذا الزائر ما دام الوقت المحفوظ في القاعدة اكبر من 'الوقت الأن ناقص 5 دقائق'
    ستقول لي ما هذا انا لم افهم هذا الشيء ومنطقيا لا يمكن حفظ اي صف
    ولكن اقول لك سأكتب السطر البرمجي الذي يمسح الوقت اذا كان الوقت المحفوظ في القاعدة اصغر من 'الوقت الأن ناقص 5 دقائق' اولا
    وبعده اضافة سطر ادخال عنوان الأيبي و'الوقت الأن ناقص خمس دقائق ' يعني حتى لو تم مسح الصف الزائر اذا زار الصفحة مرة اخرى سيتم اضافة صف جديد له وبذلك تحتسب زيارة
    مثال برمجي :
    * اذا كان الوقت المسجل في الصفوف اصغر من 'الوقت الأن ناقص 5 دقائق' او عنوان الأيبي يطابق عنوان هذا الزائر قم بمسحها
    * ادخل 'الوقت الأن ناقص 5 دقائق' ورقم الأيبي الخاص بهذا الزائر
    * استخرج عدد الصفوف الموجود ة في الجدول
    * طباعة عدد الصفوف


    الأن نمر الى البرمجة

    نحتاج الى هذا الجدول

    كود PHP:
    CREATE TABLE `nad_online` (
    `
    nad_ipVARCHAR100 NOT NULL ,
    `
    nad_timeVARCHAR15 NOT NULL
    ); 
    كما سنحتاج الى ملف الاتصال بالقاعدة اسمه config.php ويحتوي على هذه الأكواد

    كود PHP:
    $dbserver="localhost"// رابط السرفر
    $dbuser="root";      // اسم الدخول
    $dbpass="";         // كلمة المرور
    $dbname="online";  // اسم القاعدة
    // الاتصال بالقاعد
    mysql_connect($dbserver,$dbuser,$dbpass) or die (mysql_error());
    mysql_select_db($dbname) or die (mysql_error()); 
    وملف تنصيب البرنامج اسمه install.php بعد التنصيب امسحه فورا
    كود PHP:
    include('config.php');
    $install=mysql_query("
    CREATE TABLE `nad_online` (
    `nad_ip` VARCHAR( 100 ) NOT NULL ,
    `nad_time` VARCHAR( 15 ) NOT NULL
    );
    "
    );
    if(
    $install){
    echo
    "تم تركيب البرنامج بنجاح <br /><font color=red>يجب عليك مسح هذا الملف </font>";
    }else{
    echo
    "<font color=red>لم يتم تركيب البرنامج لسبب مجهول</font>";

    والأن وصلنا الى الملف المهم الذي يحتوي على جميع ما تم ذكره في المقدمة
    كود PHP:
    $time=time();  // الوقت الأن
    $ip=$_SERVER['REMOTE_ADDR'];  // عنوان الايبي للزائر
    $limitsec=$time-300// 5 دقائق
    $update=mysql_query("DELETE from  nad_online where nad_ip='$ip' OR  nad_time<'$limitsec'");
    $insert=mysql_query("INSERT INTO nad_online (nad_ip,nad_time) VALUES ('$ip','$limitsec')");
    $sql=mysql_fetch_array(mysql_query("SELECT count(*) as nad_ip from nad_online "));
    echo 
    $sql['nad_ip'].'عدد المتواجدون الأن'



    تحميل السكريبت



    اتمنى ان يكون الدرس مفهوم واي استفسار انا موجود باذن الله

    البشيري عبد الواحد
    منقول من مدونتي [ ظ…ط¯ظˆظ†ط© ظ…ط¨ط±ظ…ط¬ ] bp Blog du Programmeur





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com


  2. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    613


    نفس الفكرة تماماً ..
    كود PHP:
    CREATE TABLE `usersonline` (
      `
    timeint(11NOT NULL,
      `
    ipvarchar(15NOT NULL,
      
    PRIMARY KEY  (`time`),
      
    UNIQUE KEY `ip` (`ip`)
    ENGINE=MyISAM DEFAULT CHARSET=utf8
    كود PHP:
    // connect to database

    $time time();
    $timeout $time 600;
    $ip $_SERVER['REMOTE_ADDR'];
    $add mysql_query("insert into usersonline ( time, ip ) values ( '$time', '$ip' )");
    $delete mysql_query("delete from usersonline where time < $timeout");
    echo 
    'users online: '.mysql_num_rows(mysql_query("select * from usersonline")); 
    شكراً لك





    __________________
    مدونة؟

  3. #3
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    613


    أيضاً لإستخراج الـ ip الحقيقي نستخدم
    كود PHP:
    getenv('REMOTE_ADDR'); 






    __________________
    مدونة؟

  4. #4


    شكرا لك على الاضافة الجميلة





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Dec 2004
    المشاركات
    290


    السلام عليكم ..

    مشكور اخوي العزيز على الشرح الرائع ..
    لكن ممكن تشرح هذي النقطه

    كود PHP:
    $update=mysql_query("DELETE from  nad_online where nad_ip='$ip' OR  nad_time&lt;'$limitsec'"); 
    ليه نقوم بمسح الأي بي اذا تطابق ؟؟ ليه مايكون بس الوقت انه اقل من خمس دقائق فقط ؟

    كود PHP:
    DELETE from  nad_online where nad_ip='$ip' 
    يعني الجزئيه هذي ليه

    وماقصرت .. يعطيك العافيه





    __________________
    مدونة بحر
    www.b7r.net

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Dec 2004
    المشاركات
    290


    مكرر





    __________________
    مدونة بحر
    www.b7r.net

  7. #7


    السلام عليكم ..

    مشكور اخوي العزيز على الشرح الرائع ..
    لكن ممكن تشرح هذي النقطه

    كود PHP:
    $update=mysql_query("DELETE from  nad_online where nad_ip='$ip' OR  nad_time&lt;'$limitsec'"); 
    ليه نقوم بمسح الأي بي اذا تطابق ؟؟ ليه مايكون بس الوقت انه اقل من خمس دقائق فقط ؟

    كود PHP:
    DELETE from  nad_online where nad_ip='$ip' 
    يعني الجزئيه هذي ليه

    وماقصرت .. يعطيك العافيه
    اذا دخل زائر وتم اضافة صف الى القاعدة
    وقام بزيارة اخرى بعد قليل سيتم مسح الصف حسب تطابق الأيبي
    لكي يسجل له صف جديد ويمسح الصف القديم وبذلك نحسب لهذا الزائر دائما صف واحد فقط

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





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    613


    بدلاً من ذلك اجعل من خصائص الحقل ip اجعل من خصائصه primary لكي يكون فريدا .. فلا يمكن ان يتشابه قيمة حقلين في حقل ال ip










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض