Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ทำUserOnline ! (Php & Mysql) มาทำ Script สำหรับเช็คคนที่กำลังออนไลน์ (Useronline) กันดีกว่า ซึ่งวิธีการนั้นทำได้



 

ทำUserOnline ! (Php & Mysql) มาทำ Script สำหรับเช็คคนที่กำลังออนไลน์ (Useronline) กันดีกว่า ซึ่งวิธีการนั้นทำได้

 



Topic : 027268



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



มาทำ Script สำหรับเช็คคนที่กำลังออนไลน์ (Useronline) กันดีกว่า ซึ่งวิธีการนั้นทำได้ไม่ยากเลย และหลักการทำงานก็ไม่มีอะไรซับซ้อนมากมาย เราสามารถดัดแปลงไปใช้งานได้อีกหลายกรณี เช่น เช็คจำนวนคนที่กำลังดูหน้าเวบไซต์ของเรา หรือเอาไปใส่ใน Script โปรแกรมสนทนา(Chat) ก็ได้ ซึ่งอยู่กับการประยุกต์ใช้งานของแต่ล่ะคน ที่จะมีเทคนิคนำไปแก้ไขดัดแปลงอย่างไร

=============================================

ก่อนอื่นเลย เราต้องมาทำความเข้าใจกับหลักการทำงานของโปรแกรมนี้กันก่อน

การเช็คจำนวนคนออนไลน์ แบบทางหน้าเวบเพจนั้น ไม่ได้แสดงคนที่ออนไลน์แบบเรียลไทม์จริงๆ
แต่เป็นการนับจำนวนคนที่อ่านหน้าเอกสารของเวบเราอยู่ขณะนั้น โดยมีการเปิดอ่าน หรือรีเฟรชหน้าเวบเพจเรื่อยๆ ภายในเวลาที่เรากำหนด


ตัวอย่างเช่น ตั้งเวลาไว้ที่ 5 นาที หมายถึงว่า หากคนเยี่ยมชมเวบเพจ ไม่มีการรีเฟรช หรือเรียกเปิดหน้าเวบไซต์เลยในระยะเวลา 5 นาที
คนนั้นจะถูกลบออกไป จากการเป็นคนเยี่ยมชมทันที
และเมื่อมีการเรียกใหม่อีกครั้ง ก็จะเพิ่มเข้ามาใหม่อีก
แต่หากมีการเปิดเวบเพจแต่ล่ะหน้าไม่เกิน 5 นาที ก็จะนับเป็นแค่ 1 คน

===================================

ทั้ งนี้ โดยถือจากหมายเลข IP ที่ต่อเข้ามาเป็นหลัก
(สามารถนำไปดัดแปลงเป็นอย่างอื่นได้ เช่น วัดจากค่า Session หรือ Username ที่ login เข้ามาเป็นต้น)

วิธีการนับคนเยี่ยมชมออนไลน์ ก็ไม่ยากเริ่มจาก

1. เมื่อมีการโหลดเวบเพจขึ้นมา จะกำหนดให้เก็บค่า IP ของคนเยี่ยมชม และเวลาที่โหลดหน้าเวบเพจ ลงในฐานข้อมูลทันที

2. หลังจากนั้นเช็คว่า คนเยี่ยมชมหมายเลข IP ใด เกินกำหนดเวลาที่ตั้งไว้แล้ว ให้ลบออกฐานข้อมูล

3. ให้นับจำนวนเรคคอร์ดในตารางทั้งหมด ที่มี IP ต่างกัน ว่ามีเท่าไหร่ โดย IP เดียวกันให้นับเป็นคนเดียว

4. ค่าที่ได้ ก็คือจำนวนคนออนไลน์นั่นเอง

แค่นี้เองครับ หลักการง่ายๆ ไม่ยากอย่างที่คิดนะครับ
ส่วนใครจะเอาไปประยุกต์ยังงัย ก็ตามสบายครับ....
=============================================
การใช้งานครั้งแรกให้พิมพ์ useronline.php?action=Install
เสร็จแล้วถ้าขึ้นข้อความ "Useronline is install completed! "
แสดงว่าได้สร้างตารางเก็บข้อมูลแล้ว
ถ้าต้องการใช้ก็พิมพ์แค่ useronline.php ปกติเท่านั้น
=============================================
>> DEMO <<
=============================================
Code (PHP)
<?
######################################################
# Configuration
######################################################
$server = "localhost"; // Your mySQL Server, most cases "localhost"
$db_user = "user"; // Your mySQL Username
$db_pass = "password"; // Your mySQL Password
$database = "db_name"; // Database Name
$timeoutseconds = 300; //ตั้งเวลาสำหรับเช็คคนออนไลน์ เป็นวินาที 300= 5 นาที
# End Configuration - DO NOT EDIT BEHIND THIS LINE !!!
###############################################
if($action=="Install"){
mysql_connect($server, $db_user, $db_pass) or die ("Useronline Database CONNECT Error");
mysql_db_query($database, "CREATE TABLE useronline ( timestamp int(15) NOT NULL default '0', ip varchar(40) NOT NULL default '', file varchar(100) NOT NULL default '', PRIMARY KEY (timestamp), KEY ip (ip), KEY file (file)) TYPE=MyISAM") or die("Useronline Database Install Error");
echo "Useronline is install completed! ";
} else {
$timestamp=time();
$timeout=$timestamp-$timeoutseconds;
mysql_connect($server, $db_user, $db_pass) or die ("Useronline Database CONNECT Error");

// เมื่อมีการโหลดเวบเพจขึ้นมา จะกำหนดให้เก็บค่า IP ของคนเยี่ยมชม และเวลาที่โหลดหน้าเวบเพจ ลงในฐานข้อมูลทันที
mysql_db_query($database, "INSERT INTO useronline VALUES ('$timestamp','$REMOTE_ADDR','$PHP_SELF')") or die("Useronline Database INSERT Error");

//หลังจากนั้นเช็คว่า คนเยี่ยมชมหมายเลข IP ใด เกินกำหนดเวลาที่ตั้งไว้แล้ว ให้ลบออกฐานข้อมูล
mysql_db_query($database, "DELETE FROM useronline WHERE timestamp<$timeout") or die("Useronline Database DELETE Error");

//ให้นับจำนวนเรคคอร์ดในตารางทั้งหมด ที่มี IP ต่างกัน ว่ามีเท่าไหร่ โดย IP เดียวกันให้นับเป็นคนเดียว
$result=mysql_db_query($database, "SELECT DISTINCT ip FROM useronline WHERE file='$PHP_SELF'") or die("Useronline Database SELECT Error");

//ค่าที่ได้ ก็คือจำนวนคนออนไลน์นั่นเอง
$user =mysql_num_rows($result);
mysql_close();

//Show Useronline
if ($user==1) {
echo"$user User online";
} else {
echo"$user Users online";
}
}
?>




Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-05-13 01:26:10 By : aamacmac View : 32912 Reply : 12
 

 

No. 1



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


+1






Date : 2009-05-13 03:14:32 By : plakrim
 


 

No. 2



โพสกระทู้ ( 434 )
บทความ ( 0 )



สถานะออฟไลน์



Date : 2009-05-13 08:36:26 By : spybnc
 

 

No. 3



โพสกระทู้ ( 35 )
บทความ ( 0 )



สถานะออฟไลน์


เมพ!!!
Date : 2010-05-13 14:27:28 By : PalmZaaa
 


 

No. 4



โพสกระทู้ ( 321 )
บทความ ( 5 )



สถานะออฟไลน์
Twitter Facebook

เมพ ขิง ขิง!!! +1
Date : 2010-05-13 15:48:45 By : kenessar
 


 

No. 5



โพสกระทู้ ( 4 )
บทความ ( 0 )



สถานะออฟไลน์


น่าสนใจนะดีครับ +1
Date : 2010-06-28 07:48:00 By : Dragon_Type
 


 

No. 6



โพสกระทู้ ( 3,750 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

เจ๋งครับ +1
Date : 2010-06-28 09:06:59 By : Dragons_first
 


 

No. 7



โพสกระทู้ ( 241 )
บทความ ( 0 )



สถานะออฟไลน์


ถาม หน่อย ครับ ถ้า ผม กดปิดหน้าต่างเลย

ชื่อคนออนไลน์ที่ปิดหน้าต่างยังคงค้างอยู่ ครับ

มีวิธีแก้ไม ครับ

ขอบคุณครับ
Date : 2011-02-25 20:36:24 By : hero_big
 


 

No. 8



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

แล้วถ้าเราจะนับเวลาล่ะครับ คืออยากนับเวลา user ที่อยู่ในระบบ ว่า online ไปกี่วัน กี่ชั่วโมง ประมาณนี้ครับเหมือนตามเว็บบอร์ดน่ะครับ งมหามาหลายวันแล้วครับ หาไม่เจอซักทีครับ

ขอขอบคุณล่วงหน้านะครับผม
Date : 2011-06-16 19:21:21 By : demonking
 


 

No. 9



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

อีกกระทู้หนึ่งครับ

Go to : ขออนุญาติถามเกี่ยวกับ php user online หน่อยนะครับ ที่ต้องขออนุญาติเพราะว่าได้ลอง เซิชดูจากหลายๆกระทู้
Date : 2011-06-16 21:25:28 By : webmaster
 


 

No. 10



โพสกระทู้ ( 43 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

อย่่างนี้นี่เองครับ
Date : 2011-11-01 15:09:37 By : dinsorsee
 


 

No. 11



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ
Date : 2011-11-02 03:43:43 By : lcherrybluel
 


 

No. 12

Guest


Code
<script id="_wauynm">var _wau = _wau || []; _wau.push(["classic", "1i2z624yvjol", "ynm"]);
(function() {var s=document.createElement("script"); s.async=true;
s.src="http://widgets.amung.us/classic.js";
document.getElementsByTagName("head")[0].appendChild(s);
})();</script>

Date : 2012-05-12 02:26:51 By : เหมียว
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ทำUserOnline ! (Php & Mysql) มาทำ Script สำหรับเช็คคนที่กำลังออนไลน์ (Useronline) กันดีกว่า ซึ่งวิธีการนั้นทำได้
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่