ผมจะแนะทางให้นะครับ จะเก็บไว้ที่ตาราง member ก็ได้ หรือจะสร้าง ตารางขึ้นมาอีกตารางก็ได้
ถ้าจะเก็บไว้ในตารางเดียวกับ member ก็เพิ่มฟิลล์มาอีก 2 ฟิลล์ ครับ status_login กับ time_login
ตอน login ก็ เขียน sql
SELECT * FROM member WHERE user='$username' AND password='$password' AND status_login='0'
และภายใต้เงื่อนไข login สำเร็จก็เขียน sql
$timestamp=time();
UPDATE member SET status_login = '1', time_login='$timestamp' WHERE user='$username'
ส่วนตอนเช็คในแต่ละหน้าก็เขียน
$timeout_login = 60;// กำหนดเวลาหาก ไม่ได้ออกจากระบบ ถ้าเกินเวลาดังกล่าวจะทำการ update status เป็น 0 อัตโนมัติ
$timestamp=time();
$timeout=$timestamp-$timeout_login;
if(isset($_COOKIE['username']) && isset($_COOKIE['password'])) {
mysql_query("UPDATE member SET status_login='1', time_login='".$timestamp."' WHERE user='".$_COOKIE['username']."' AND time_login<$timeout") or die(mysql_error());
}
mysql_query("UPDATE member SET status_login='0' WHERE time_login<$timeout") or die(mysql_error());
หน้า logout ก็ เขียน
UPDATE member SET status_login='0' WHERE user='".$_COOKIE['username']."'
if(isset($_COOKIE['username']) && isset($_COOKIE['password'])) {
mysql_query("UPDATE member SET status_login='1', time_login='".$timestamp."' WHERE user='".$_COOKIE['username']."'") or die(mysql_error());
}
mysql_query("UPDATE member SET status_login='0' WHERE time_login<$timeout") or die(mysql_error());
if(isset($_COOKIE['username']) && isset($_COOKIE['password'])) {
mysql_query("UPDATE member SET status_login='1', time_login='".$timestamp."' WHERE user='".$_COOKIE['username']."' AND time_login<$timeout") or die(mysql_error());
}
if(isset($_COOKIE['username']) && isset($_COOKIE['password'])) {
mysql_query("UPDATE member SET status_login='1', time_login='".$timestamp."' WHERE user='".$_COOKIE['username']."' AND time_login<$timeout") or die(mysql_error());
}
WHERE user='".$_COOKIE['username']."' AND time_login<$timeout") //เท่ากบ เมื่อ user มีค่าเท่ากับ cookie['username'] และ เวลาปัจจุบัน น้อยกว่าเวลาที่กำหนด ผมเข้าใจถูกไหม๋ครับ
ถ้าเป็นอย่างนี้ก็คือ จนกว่า user จะไม่ได้เปิดเพจหน้าไหนแล้ว ค่อย update เป็น 1 หรอครับ
WHERE user='".$_COOKIE['username']."' AND time_login<$timeout") //เท่ากบ เมื่อ user มีค่าเท่ากับ cookie['username'] และ เวลาปัจจุบัน น้อยกว่าเวลาที่กำหนด ผมเข้าใจถูกไหม๋ครับ // ไม่ใช่เวลาปัจจุบันนะครับ เวลาที่ user มีการ active ล่าสุด