.تعمیـــرکاران کیان ست (kiansat.kim)تابع قوانین -جمهموری-اسلامی ایران میباشد و ارسال هر گونه مطلب سیاسی،مذهبی،غیراخلاقی و خرید و فروش متعلقات ماه-واره و دیگر موارد مجرمانه ممنوع میباشد وبا کاربران خاطی به شدت برخورد میگردد انجمن فقط تعمیرات لوازم الکترونیک میباشد...













سلام مهمان گرامی؛
به کیان ست خوش آمدید برای مشاهده انجمن با امکانات کامل می بايست از طريق این لینک عضو شوید.

http://teranzit.pw/uploads/14469017281.png
پیام خصوصی به مدیریت کل سایت ........... صفحه توضیحات و شرایط گروه ویژه ........... ...........
ارتباط تلگرامی با مدیریت سایت ................. ایدی تلگرام suportripair@ .................
نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: نمايش تعداد کاربران online بوسيله PHP

  1. #1


    تاریخ عضویت
    Oct 2010
    نوشته ها
    198
    تشکر ها
    38
    401 سپاس از181 پست

    نمايش تعداد کاربران online بوسيله PHP

    امروزه در بسياري از سايتهاي اينترنت مي توان مشخصات کاربراني که در حال مشاهده صفحات سايت مي باشند (و يا حداقل تعدا کاربران (online) را مشاهده نمود). در اين مقاله سعي داريم در ارتباط با نحوه انجام اين کار بوسيله زبان PHP و با استفاده از بانک اطلاعاتي MySQL بپردازيم و در ابتدا در ارتباط با الگوريتم چگونگي انجام اين کار بحث خواهيم کرد.
    همانطور که مي دانيد هر يک از کاربران اينترنت داراي يک آدرس منحصر به فرد (به نام IP) مي باشند. ما نيز براي فهميدن تعداد کاربران online از همين آدرس به عنوان مشخصه هر کاربر استفاده مي کنيم.
    از طرفي از آنجايي که بعد از ارسال کامل هر صفحه براي کاربر ارتباط بين کاربر و سرويس دهنده از بين مي رود نمي توان از اينکه آيا کاربر هنوز در حال مشاهده آخرين صفحه اي که از سايت دريافت کرده مي باشد و يا نه، اطمينان حاصل کرد. به همين دليل براي انجام اين کار از يک پيش فرض زماني استفاده مي کنيم. به اين صورت که فرض مي کنيم هر يک از کاربران سايت هر صفحه اي را که در يافت مي کند، آنرا به مدت چند دقيقه (در اين مثال ۵ دقيقه) مشاهده مي کند. حال اگر قبل از سپري شدن اين زمان کاربر درخواست صفحه ديگري را ارسال نمايد به اين معنا است که اين زمان بايد مجددا براي مدت ۵ دقيقه تمديد گردد و در غير اين صورت مي توان اين طور تصور نمود که کاربر از سايت خارج شده است. و در پايان نيز به اين نکته اشاره مي کنم که براي نگهداري و بازيابي اطلاعات مربوط به کاربران از بانک اطلاعاتي MySQL استفاده مي کنيم. حال بعد از اطلاع از نحوه انجام اين کار مراحل عملي براي انجام اين کار را بترتيب مرور خواهيم نمود.

    در ابتدا بايد با استفاده از نرم افزارهاي موجود براي مديريت بانکهاي اطلاعاتي MySQL مانند phpMyAdmin در بانک اطلاعاتي، table مورد نياز را ايجاد نمود. اين table (که در اين مثال با نام visitors ايجاد شده و مورد استفاده قرار مي گيرد) داراي سه فيلد (براي نگهداري ادرس IP، صفحه در حال مشاهده و زمان ارسال در خواست) مي باشد. بوسيله دستورات SQL زير مي توانيد اين table را ايجاد نماييد.

    نقل قول:
    کد PHP:
    CREATE TABLE `visitors` (  
    `
    timevarchar(10) default NULL,  
    `
    pagevarchar(255) default NULL,  
    `
    ipvarchar(255) default NULL  
    TYPE=MyISAM
    </span>
    در مرحله بعد گفتيم که از آدرس IP به عنوان مشخصه مورد استفاده در شناسايي کاربران استفاده خواهيم نمود. براي اين کار بايد ابتدا بوسيله PHP، آدرس IP بازديد کننده را شناسايي نمود. در کد زير تابعي به زبان PHP قرار دارد که با استفاده از آن مي توانيد آدرس IP کاربري را که در خواست مشاهده صفحات سايت را داده است بدست آوريد.

    کد PHP:
    <?  
     
    function GetIP() {  
     global 
    $REMOTE_ADDR$HTTP_X_FORWARDED_FOR;  
      
     
    $ip "";  
     if (
    $HTTP_X_FORWARDED_FOR != "") {  
     
    $ip $HTTP_X_FORWARDED_FOR;  
     } else {  
     
    $ip $REMOTE_ADDR;  
     }  
     return 
    $ip;  
     }  
     
    ?>
    و در مرحله نهايي بايد با استفاده از بانک اطلاعاتي مشخص کنيم که آيا اين کاربر براي اولين بار مراجعه نموده است و يا قبل از زمان در نظر گرفته شده (۵ دقيقه در اين مثال) درخواست ديگري داده است؟ و همچنين اطلاعات مربوط به اين درخواست را در بانک اطلاعاتي ذخيره کنيم. کد زير که به زبان PHP نوشته شده است اين کار را انجام خواهد داد.
    نقل قول:

    کد PHP:
    <?  
     
    function WriteVisitor($PAGE) {  
     
    $ip GetIP();  
     
    $time time() - 300;  
     
    DB_Execute("DELETE FROM `visitors` WHERE (`ip` = . $ip . )");  
     
    DB_Execute("DELETE FROM `visitors` WHERE (`time` < . $time . )");  
      
     
    $time time();  
     
    DB_Execute("INSERT INTO `visitors` VALUES ( . $time . , . $PAGE . , . $ip . )");  
     }  
     
    ?>
    در اين تابع براي انجام queryهاي بانک اطلاعاتي از تابعي با نام DB_Execute استفاده شده است که کد آن را به زبان PHP در زير مشاهده مي نماييد.


    کد PHP:
    <?  
    $DATABASE 
    = array (  
    "server" => "localhost",  
    "port" => "3306",  
    "username" => "root",  
    "password" => "",  
    "database" => "WEBILIX"  
    );  
     
    function 
    DB_Execute($query) {  
    global 
    $DATABASE;  
     
    $DBLINK mysql_connect($DATABASE["server"] . ":" $DATABASE["port"], $DATABASE["username"], $DATABASE["password"]);  
    mysql_select_db($DATABASE["database"], $DBLINK);  
    $result mysql_query($query);  
     
    return 
    $result;  
    }  
    ?>
    </span>

    به اين نکته توجه داشته باشيد که براي استفاده از اين تابع بايد حتما مشخصات مربوط به بانک اطلاعاتي خود را در اين کد تغيير دهيد.

    حال به فرض آنکه در سايت صفحه اي با نام page.php داريد و همچنين کدهاي PHP نوشته شده در مطالب قبل را در يک فايل به نام visitors.php ذخيره نموده ايد با استفاده از کد زير خواهيد توانست مشخصات مربوط به درخواست کاربران براي مشاهده اين صفحه را ثبت نماييد.
    نقل قول:
    کد PHP:
    <?    
     
    include "./visitors.php";    
     
    WriteVisitor("page.php");    
     
    ?>    
     و براي نوشتن تعداد کاربراي online نيز مي توانيد کد زير را در صفحات سايت قرار دهيد.    
         
     <?    
     $DBLINK 
    mysql_connect($DATABASE["server"] . ":" $DATABASE["port"], $DATABASE["username"], $DATABASE["password"]);    
     
    mysql_select_db($DATABASE["database"], $DBLINK);    
     
    $result mysql_query("SELECT * FROM `visitors`");    
     $ 
    visitors_number mysql_num_rows($result);    
        
     if(
    $visitors_number == 1) {    
     print(
    $visitors_number "user online    
     "
    );    
     } else {    
     print(
    $visitors_number " users online    
     "
    );    
     }    
     
    ?>
    [CENTER]:1205219183:
    [B][FONT=Tahoma][SIZE=3][COLOR=#0000ff][URL="http://kiansat3.ir/showthread.php?t=47100"]فروش جدیدترین و کاملترین پکیج نرم افزاری و بازی و آموزشی و تعمیراتی انواع موبایل ها بصورت کاملا فارسی به همراه چندین اشانتیون[/URL][/COLOR][/SIZE][/FONT][/B]
    [B]:1205219183::فقط خودت باش نه کسی دیگر!
    :lay:
    [/B][/CENTER]

  2. 5کاربر از Borna66 بخاطر ارسال این پست مفید سپاسگزاری کرده اند:

    ASHKAN-NO (4th July 2012),dariushm1370 (4th July 2012),iraj_kh (4th July 2012),KIAN FAR (4th July 2012),M.Salehi  (4th July 2012)

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Copyright ©2000 - 2013, Jelsoft Enterprises Ltd کیــــــــــان ستـــــــــــ ...® اولین و بزرگترین سایت فوق تخصصی الکترونیک در ایران



Cultural Forum | Study at Malaysian University