|
|
|
การทำสมาชิก online และ offline ทำยังไงอ่ะคับ ตามหัวข้อเลยอ่ะครับ ตรวจสอบว่า บุคคนนี้ กำลัง online อยู่ หรือ offline อยู่อ่ะ |
|
|
|
|
|
|
|
ถ้าจะทำในลักษณะนี้ล่ะ Member Online ก็คือว่า สมาชิกท่านไหนกำลัง Online แบบนี้อ่ะครับ
|
|
|
|
|
Date :
2009-07-25 16:18:12 |
By :
somparn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องมีฟิลด์ อับเดตความเคลือนไหวสมาชิกนั้นๆ ทุก ครั้งที่คลิกครับ
แล้ว
เราก็เอามาเช็ค
ถ้าความเคลือนไหวล่าสุดของสมาชิกนั้นๆ ผ่านไป 30 นาที ให้เขา offline
แต่ถ้า ยังไม่ผ่านไป 30 นาที ให้แสดงออนไลน์
|
|
|
|
|
Date :
2009-07-25 16:30:09 |
By :
danya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
function userOnlineOffline($uLastActionTime)
{
//เวลาที่จะเช็ค เอาเวลาปัจจุบัน ลบด้วย 180 (180 คือ 30นาที) นั้นคือ ย้อนหลังไป 30 นาที
$timeCheck = time() - 180;
// ถ้าความเลือนไหวของสมาชิก มากกว่า เวลาที่เช็ค นั้นคือมากกว่า 30 นาที เขาต้องออนไลน์ในช่วง 29- ปัจจุบันแน่นอน
if ($uLastActionTime > $timeCheck)
// แสดงว่าออนไลน์อยู่
return 'ออนไลน์ในขณะนี้';
else
// ไม่อยู่แล้ว
return = 'ออฟไลน์';
}
//วิธีใช้งาน
//เหตุการณ์ที่หนึ่ง
//จำลองว่า เวลาความเลือนไหวของสมาชิกคือ ณ ตอนนี้ แน่นอนว่า ต้องออนไลน์อยู่
$uLastActionTime = time();
echo userOnlineOffline($uLastActionTime);
//วิธีใช้งาน
//เหตุการณ์ที่หนึ่ง
//จำลองว่า เวลาความเลือนไหวของสมาชิกคือ ผ่านไป 185 วินาที นัน้คือ เลย 30 นาทีแล้ว เขาต้องออฟไลนืแน่ๆ
$uLastActionTime = time() - 185;
echo userOnlineOffline($uLastActionTime);
?>
|
|
|
|
|
Date :
2009-07-25 16:47:09 |
By :
danya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ เดียวผมลองนำไปใช้งานดูนะครับ นี้เป็นตอน login เข้ามาหรือเปล่าอ่ะคับ
คือที่ผมเข้าใจตอน สมาชิก online นั้นต้องผ่านการ login ก่อนถึงจะแสดงว่าผู้ใช้งานคนนี้ online ไม่รู้ว่าผมเข้า
ใจผิดหรือเปล่า แต่สิ่งที่ต้องการคือแบบนี้อ่ะครับ เดียวลองเข้าโค้ดเพ่ดุนยาไปศึกษาและเล่นดูก่อนนะครับ
|
|
|
|
|
Date :
2009-07-25 17:48:21 |
By :
somparn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทุกครั้งที่สมาชิกคลิกหน้าไหนก็ตา ต้องทำการอับเดท สถานะของสมาชิกนั้นๆ นะครับ
อับเดท where user_last_action = time()
|
|
|
|
|
Date :
2009-07-25 18:17:35 |
By :
danya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่างที่เพ่ให้มา อัพเดชไม่รู้ว่าผมเรียนใช้ถูกหรือเปล่าอ่ะคับ
เดียวลองเล่นดูก่อนครับ
Code (PHP)
<?php
<?php
function userOnlineOffline($uLastActionTime)
{
//เวลาที่จะเช็ค เอาเวลาปัจจุบัน ลบด้วย 180 (180 คือ 30นาที) นั้นคือ ย้อนหลังไป 30 นาที
$timeCheck = time() - 180;
// ถ้าความเลือนไหวของสมาชิก มากกว่า เวลาที่เช็ค นั้นคือมากกว่า 30 นาที เขาต้องออนไลน์ในช่วง 29- ปัจจุบันแน่นอน
if ($uLastActionTime > $timeCheck)
// แสดงว่าออนไลน์อยู่
return 'ออนไลน์ในขณะนี้';
else
// ไม่อยู่แล้ว
return = 'ออฟไลน์';
}
//วิธีใช้งาน
//เหตุการณ์ที่หนึ่ง
//จำลองว่า เวลาความเลือนไหวของสมาชิกคือ ณ ตอนนี้ แน่นอนว่า ต้องออนไลน์อยู่
$uLastActionTime = time();
where user_last_action = time();
// ตรงที่เพ่ดุนยาเพิ่มมาให้ไม่รู้ว่าเรียนใช้ถูกที่หรือเปล่าครับ
echo userOnlineOffline($uLastActionTime);
//วิธีใช้งาน
//เหตุการณ์ที่หนึ่ง
//จำลองว่า เวลาความเลือนไหวของสมาชิกคือ ผ่านไป 185 วินาที นัน้คือ เลย 30 นาทีแล้ว เขาต้องออฟไลนืแน่ๆ
$uLastActionTime = time() - 185;
echo userOnlineOffline($uLastActionTime);
?>
?>
|
|
|
|
|
Date :
2009-07-25 18:27:10 |
By :
somparn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาไปใช้งานได้เลยเปล่าครับ ผมลอง include ดูแล้ว มันฟ้องผิด lineที่ 15 อะครับ return = 'ออฟไลน์';
ยังเอาไปใช้งานไม่เป็นเลยครับเพ่ดุนยา
|
|
|
|
|
Date :
2009-07-25 18:50:30 |
By :
somparn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แหะๆ เอาคำว่า = ออกไปครับ
|
|
|
|
|
Date :
2009-07-25 18:53:16 |
By :
danya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำไมต้องเปิดแท็ก PHP สองอันอ่ะครับ
|
|
|
|
|
Date :
2009-07-25 23:47:03 |
By :
zillie |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดีครับ
|
|
|
|
|
Date :
2009-11-14 14:24:47 |
By :
mac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 มัน 3 นาทีหรือเปล่าอะครับ
|
|
|
|
|
Date :
2009-11-14 14:56:32 |
By :
-*- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากทำคล้ายๆแบบนี้แต่แค่นี้ยังไม่เข้าใจแน่เลย
|
|
|
|
|
Date :
2010-06-30 21:09:19 |
By :
keapkung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วิธีของผมคือ สร้าง ตาราง user online มา
มีเก็บ id ของ user
แล้วเขียน SQL ให้ count ในตาราง useronline ว่ามี user ไหนที่ count ได้ไม่เท่ากับ0 แสดงว่า online อยุ่
|
|
|
|
|
Date :
2010-07-01 02:05:51 |
By :
50121680 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมกำลังงงกับโค้ดอ่ะครับว่ามันไปเพิ่มตอนไหน
รึว่าตอนที่เข้ามาหน้านั้นเลย
|
|
|
|
|
Date :
2010-07-01 17:12:22 |
By :
keapkung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อย่างเช่น โค้ดนี้ครับ
Code (PHP)
<?
session_start();
$session=session_id();
$time=time();
$time_check=$time-600; //กำหนดเวลาในที่นี้ผม กำหนด 10 นาที
$hostname = "localhost";
$user = "";
$password = "";
$dbname = "test"; //กำหนด Database
$tblname = "user_online"; //กำหนดตารางที่ เก็บข้อมูล
mysql_connect($hostname, $user, $password) or die("ติดต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die("เลือกฐานข้อมูลไม่ได้");
$session_db = mysql_query("select count(*) from $tblname where session='$session'");
$session_check = mysql_result($session_db,0);
if ($session_check == "0") {
mysql_query("insert into $tblname values ('$session',$time)");
} else {
mysql_query("update $tblname set time='$time' where session='$session'");
}
$count_user = mysql_query("select count(*) from $tblname");
$user_online = mysql_result($count_user,0);
echo "กำลังใช้งานอยู่ : $user_online คน"; //ทดสอบ การแสดงผล ถ้านำไปใช้ให้ปิด หรือลบบรรทัดนี้ออกไป
mysql_query("delete from $tblname where time<$time_check");
mysql_close();
?
ตรง insert ก็ให้มัน insert id ของ user ไปด้วยครับ
|
|
|
|
|
Date :
2010-07-01 17:31:14 |
By :
50121680 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|