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 > อยากให้ ระบบ ทำการ Logout อัตโนมัติ เมื่อมีการ กดปิด หน้าต่าง window โดยที่ ไม่ได้ กดปุ่ม LOGOUT อ่ะค่ะ



 

อยากให้ ระบบ ทำการ Logout อัตโนมัติ เมื่อมีการ กดปิด หน้าต่าง window โดยที่ ไม่ได้ กดปุ่ม LOGOUT อ่ะค่ะ

 



Topic : 098703



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



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



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

โค้ดตอนนี้ ที่ ใช้เช็ค ใน Sesstion
Code (PHP)
$inactive = 10; // Set timeout period in seconds

if (isset($_SESSION['timeout'])) {
    $session_life = time() - $_SESSION['timeout'];
    if ($session_life > $inactive) {
mysql_query("UPDATE tb_user SET check_online ='ออฟไลน์' WHERE user_name = '$_SESSION[user_name]'");//อัพเดตสถานะ ตอนออกเพื่อใช้เชคตอนลอกอินเข้า ว่า คนนี้ ไม่ได้ออนไลน์อยู่
        session_destroy();
       header("Location: ../index.php");
    }
}
$_SESSION['timeout'] = time();




Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-08-05 15:36:28 By : amjang22 View : 8565 Reply : 4
 

 

No. 1



โพสกระทู้ ( 1,521 )
บทความ ( 2 )

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

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

ลองเข้าไปดู
Go to : อยากถามเรื่อง ระบบ login ที่ใช้ cookie เข้ามาช่วยครับว่าใช้ cookie เก็บค่ายังไง






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-05 15:52:42 By : Krungsri
 


 

No. 2



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



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


ขอบคุณค่ะ ศึกษา แปป คะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-05 15:57:16 By : amjang22
 

 

No. 3



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

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

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

ใช้หลักการเดียวกับ User online ครับ ผมเคยเขียน concept ไว้ที่นี่ครับ

Go to : ใช้ session อย่างไร ถ้าต้องการ login ได้แค่ เครื่องเดียวเท่านั้น ของ user นั้นๆ ป้องกัน login ซ้ำ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-05 16:03:30 By : mr.win
 


 

No. 4



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



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

แบบว่า ใช้อีก วิธีหนึ่งอ่ะค่ะ คิดขึ้นมาเอง ไม่รู้ว่าจะ เกิดปัญหาตามมาหรือเปล่า
ไปเพิ่ม ฟิวล์ ใน tb_user ชื่อ time_check เป็นชนิด BINARY(14) เพื่อ เก็บค่า เวลา ตอนที่ login เข้าระบบ
แล้ว เก็บค่าเวลา เพื่อ มา คำนวน ตอน ลอกอินเข้าระบบ โดยกำหนด เวลา ว่าให้ ผู้ใช้ อยู่ในระบบ ได้นาน กี่ นาที ถึงเข้าระบบได้
ไฟล์ chk_login.php
Code (PHP)
<?php
$sql="select * from tb_user where user_name ='$username' and password ='$password'  ";
$query=mysql_query($sql) or die("error=$sql");
$timeoutseconds = 100; //ตั้งเวลาสำหรับเช็คคนออนไลน์ เป็นวินาที 300= 5 นาที 
if( mysql_num_rows( $query ) >0 )
{
	$db = mysql_fetch_array( $query );
	//echo $db['check_online'];
	$_SESSION['user_name'] = $db['user_name'];
	$_SESSION['status'] = $db['status'];
        $_SESSTION['timeout']= $db['time_check'];

         $timestamp= time();   
   	 $timeout=$timestamp-$_SESSTION['timeout'];	//เวลาที่อยู่ในระบบคิดเป็น เป็น วินาที 
	 $tt =$timeoutseconds - $timeout; // เวลาที่เหลือ ที่จะ login เข้าระบบใหม่ได้อีกครั้ง
         $realy =  number_format($tt/60,2); //แปลง วินาทีให้เป็นนาที แล้วตัดเลขทศนิยมให้เหลือ 2 หลักจ้าา
// echo "เวลาปัจจุบัน".$timestamp;
//echo "<br> เวลาออกอยู่ในระบบ". $_SESSTION['timeout'];
//echo "<br> เวลา ที่".$timeout; 
// ต่อไป ข้างล่างนี้ จะเข้าเงื่อไข เช็คเมื่อกรณีที่ ผู้ใช้ ไม่ยอม logout โดยกดปิด หน้าต่าง window ออกจากระบบแทน  เมื่อนั้น ระบบจะ จดจำเวลาในตอนที่ ผู้ใช้ login
//ดึงค่าออกมาจากฐานข้อมูล แล้ว เอามา - กับ เวลาปัจจุบัน แล้ว เทียบกับ เวลา เราตั้งไว้ ว่าให้ผู้ใช้อยู่ได้นานเท่าไหร่ ถึงจะ login ใหม่

	 if($db['check_online'] == $check &&   $timeout < $timeoutseconds) //ถ้าเวลาที่อยู่ในระบบ น้อยกว่า เวลาที่ตั้งไว้ และ สถานะ ออนไลน์ แสดงว่า 
	{
	echo "<script type=\"text/javascript\">
		alert(\"USERNAMEนี้ กำลังถูกใช้งานอยู่ กรุณาลองใหม่ภายหลัง อีก  $realy  นาที\");
		history.back();</script>";
 		exit();
	}
}    

else
{
	echo"<script>alert('รหัสผ่านไม่ถูกต้อง!!');window.location='index.php';</script>";
}
	
switch( $_SESSION['status'] )
	{
		case "1" : echo "<script>location='admin/index.php';</script>"; break;
		case "2" : echo "<script>location='user/index_user.php';</script>"; break;
		case "3" : echo"<script>
				alert('ขอโทษค่ะ!! ไม่สามารถเข้าระบบได้ เพราะท่านถูกยกเลิกสมาชิกแล้ว กรุณาติดต่อเจ้าหน้าที่โดยตรงค่ะ'); history.back();
		     		</script>"; break;
		default : echo "<script>location='index.php';</script>"; break;
	}
     $sqll=mysql_query("UPDATE tb_user SET time_check = '$timestamp' ,check_online = 'ออนไลน์' WHERE user_name = '$username'")or die("$sqll")


?>


ไฟล์ sesstion.php
Code (PHP)
<?php
if(!isset($_SESSION['user_name']))
{
	echo"<script>alert('คุณยังไม่ได้เข้าสู่ระบบ!!');window.location='../index.php';</script>";
	exit();
}

if($show['status'] != 2)
{  
	mysql_query("UPDATE tb_user SET check_online ='ออฟไลน์' WHERE user_name = '$_SESSION[user_name]'");//อัพเดตสถานะ ตอนออกเพื่อใช้	เชคตอน ลอกอินเข้า ว่า คนนี้ ไม่ได้ออนไลน์อยู่
	session_destroy();      
	echo"<script>alert('ADMIN เข้าส่วนของ User ไม่ได้ นะจ๊ะ!!');window.location='../index.php';</script>";
        	
}
//กำหนด เวลา ให้ ผู้ใช้อยู่ในระบบได้ นานเท่าไหร่ เมื่อไม่ได้ เคลื่อนไหว เว็บนั้น
$inactive = 200; // Set timeout period in seconds

if (isset($_SESSTION['timeout'])) 
{
    $session_life = time() - $_SESSTION['timeout'];
	    if ($session_life > $inactive)
	    {
		$time = time();
		mysql_query("UPDATE tb_user SET check_online ='ออฟไลน์',time_check ='$time ' 
			     WHERE user_name = '$_SESSION[user_name]'");//อัพเดตสถานะ ตอนออกเพื่อใช้เชคตอนลอกอินเข้า ว่า คนนี้ ไม่ได้ออนไลน์อยู่
		session_destroy();
		header("Location: ../index.php");
	    }
}

 ?>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-06 17:09:19 By : amjang22
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากให้ ระบบ ทำการ Logout อัตโนมัติ เมื่อมีการ กดปิด หน้าต่าง window โดยที่ ไม่ได้ กดปุ่ม LOGOUT อ่ะค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่