สอบถามวิธีนับถอยหลังแล้วเซ็ตค่าใน Database

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามวิธีนับถอยหลังแล้วเซ็ตค่าใน Database

สอบถามวิธีนับถอยหลังแล้วเซ็ตค่าใน Database
<?php
	session_start();

	require_once("connect.php");

	$nowTime = date("Y-m-d H:i:s");
	date_default_timezone_set('Asia Pacific/Singapore');
	$sql= "SELECT login_time,total_time,diff_time,logout_time FROM member WHERE  UserID='".$_SESSION["UserID"]."'";
	$result = mysql_query($sql);
	$res = mysql_fetch_assoc($result);

        $a ="00:00:00";


	$sql = "UPDATE member SET LoginStatus =  '0', logout_time = NOW(), diff_time = TIMEDIFF( logout_time, login_time ), total_time = (MINUTE (total_time + diff_time) + total_time) WHERE UserID ='".$_SESSION["UserID"]."' ";
	$query = mysql_query($sql);

	$sql1 = "SELECT * from member WHERE UserID ='".$_SESSION["UserID"]."' ";
	$query = mysql_query($sql1);
	$rel = mysql_fetch_array($query);
	echo $rel['LoginStatus'];
	echo $_SESSION["UserID"];

	if($rel['LoginStatus'] == 0){

?>
	<script language="JavaScript">
	sec=10;
	function tplus() {
		sec-=1;
		document.getElementById("OutputText").innerHTML="<font color='red'>" + sec + " </font> Sec.";
		if (sec==0) {
			window.location.replace("http://localhost:82/test/index.php");
		}
		if (sec>0) {setTimeout("tplus()",1000);}
	}
	setTimeout("tplus()",1000);
</script>
		
<div align="center" id="OutputText"></div>
<div id="OutputText2">
	<div align="center">Please wait...</div>
</div>
<?php
	$sql = "UPDATE member SET LoginStatus = '3' WHERE UserID ='".$_SESSION["UserID"]."' ";
			$query = mysql_query($sql);
	}else{
	echo "Answer is 1";}



?>

อยากทราบวิธีทำให้เปลี่ยนค่าหลังจากล็อคเอ้าที่มีค่าเป็น 0 หลังจากนั้นระบบนับถอยหลังตามเวลาที่กำหนดไว้แล้วเปลี่ยนค่าเป็น 3 

ปัญหาคือ : เมื่อล็อคเอ้าแล้วเปลี่ยนค่าเป็น 3 เลย ไม่เข้าเงื่อนไขการนับถอยหลัง 


Fourteenz 05-05-2016 02:17:58

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

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

<br>
<div id="place_time" style="margin:auto;text-align:center;">
</div>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>   
<script type="text/javascript">
var t = 11;
var intervalID = setInterval(function(){
	t-=1;	
	var strT="โปรดรอ....."+t+" วินาที";
	$("#place_time").html(strT);
	if(t==0){
         clearInterval(intervalID);
		$.post("clearsession.php",function(data){
			
//			window.location='setinterval.php';			
		});
	}
},1000);



ไฟล์ clearsession.php ก็เป็นไฟล์ไว้อัพเดทสถานะเป็น 3 และก็ clear session


ninenik 05-05-2016
 ความคิดเห็นที่ 2
อยากรู้ว่าต้องเอาโค๊ดนี้ไปแทรกตรงไหนครับ หรือต้องสร้างเป็น 2 ไฟล์แล้วส่งค่าไปมา 


fubfybravo 07-05-2016 02:03
 ความคิดเห็นที่ 3
โค้ดตัวอย่างไว้ในไฟล์ logout.php ส่วนโค้ดในไฟล์ clearsession.php ก็จะเป็นอีกไฟล์เป็นโค้ดสำหรับอัพเดทสถานะเป็น 3
และก็ล้่างค่าตัวแปร session  หลังไฟล์แรกแสดงเวลานับถอยหลังครบ 10 วิ ก็จะไปเรียกไฟล์ clearsession.php ให้ทำงาน


ninenik 07-05-2016
 ความคิดเห็นที่ 4
คือตอนนี้ใช้วธีตามที่บอกไปข้างต้นแล้ว แต่ปัญหาคือเมื่อเซ็ตเป็นค่า 0 แล้ว ส่งค่าต่อไปอีกหน้าให้นับถอยหลังแล้วเซ็ตค่าเป็น 3 มันเซ็ตไม่ได้ เหมือนกับว่าไม่มีการนับถอยหลัง พอมีวิธีแก้มั๊ยครับ 
หน้า logout.php

<?php  
    session_start();  
  
    require_once("connect.php");  
  
      
    date_default_timezone_set('Asia Pacific/Singapore');  
    $sql= "SELECT login_time,total_time,diff_time,logout_time FROM member WHERE  UserID='".$_SESSION["UserID"]."'";  
    $result = mysql_query($sql);  
    $res = mysql_fetch_assoc($result);  
  
        $a ="00:00:00";  
  
  
    $sql = "UPDATE member,total SET member.LoginStatus =  '0', member.logout_time = NOW(), member.diff_time = TIMEDIFF( logout_time, member.login_time ), member.total_time = (MINUTE (total_time + diff_time) + total_time), total.device_status = '0' WHERE UserID ='".$_SESSION["UserID"]."' ";
	$query = mysql_query($sql);

  
?>
<br>  
<div id="place_time" style="margin:auto;text-align:center;">  
</div>  
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>     
<script type="text/javascript">  
var t = 11;  
var intervalID = setInterval(function(){  
    t-=1;     
    var strT="โปรดรอ....."+t+" วินาที";  
    $("#place_time").html(strT);  
    if(t==0){  
         clearInterval(intervalID);  
        $.post("clearsession.php",function(data){  
              
          window.location='setinterval.php';            
        });  
    }  
},1000); 
หน้า clearsession.php

<?php
session_start();
require_once("connect.php");



$sql_insert = "UPDATE total SET device_status = '3' WHERE UserID = '".$_SESSION['UserID']."' ";
$sql_query = mysql_query($sql_insert);

session_destroy();

?>


fubfybravo 07-05-2016 16:34
 ความคิดเห็นที่ 5
นับถอยหลังแค่ในไฟล์ logout.php พอถึง 0 วินาที ก็ไปเรียกไฟล์ clearsession.php เพื่ออัพเดท ทั้งหมดก็ประมาณนั้น ที่เหลือลองทำความเข้าใจดู


ninenik 07-05-2016
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ