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,027

HOME > PHP > PHP Forum > ใช้คำสั่งสั่ง sleep แล้วหน้าเว็บต้องใช้เวลาโหลดตามเวลาของ sleep ต้องแก้ไขอย่างไรครับ



 

ใช้คำสั่งสั่ง sleep แล้วหน้าเว็บต้องใช้เวลาโหลดตามเวลาของ sleep ต้องแก้ไขอย่างไรครับ

 



Topic : 135059



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



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



ผมใช้คำสั่ง sleep แล้วหน้าเว็บไม่โหลดอะครับ สมมติหน้า 1 คือ หน้า login เมื่อ login เสร้จจะไปหน้าที่ 2 ซึ่งหน้าที่ 2 ผมใส่คำสั่งเปิดรีเลย์ ล้ว sleep วิ จากนั้นปิดรีเลย์ แต่ปัญหาคือ เมื่อผมlogin จากหน้า 1 ต้องใช้เวลา 30 เหมือนกัน ถึงจะโหลดหน้า 2 มีคำสั้งที่ให้ไปหน้า 2 ก่อนแล้วค่อย sleep ไหมครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2020-03-29 16:05:11 By : 1372589436224688 View : 586 Reply : 6
 

 

No. 1



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



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


เขียนโปรแกรมยังไงเอามาดูครับ วาง flow control แบบไหนจะได้ช่วยแก้ไขให้ได้ เขียนแบบนี้ งง
คือไม่รู้จะเปิด relay ทำไม ลักษณะการทำงาน บน browser เป็นการ transfer ข้อมูลที่เป็น text แล้วมา complie html/javascript บน client
ถ้าข้อมูลมาไม่ครบ ยังไม่มีคำสั่ง ปิด connection มันก็จะยังไม่แสดงผล






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-03-29 16:42:51 By : Chaidhanan
 


 

No. 2



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



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

กระทู้ก่อนทำได้แล้วเหรอครับ
https://www.thaicreate.com/php/forum/135056.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-03-29 16:47:42 By : PhrayaDev
 

 

No. 3



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2020-03-29 16:42:51
รายละเอียดของการตอบ ::
Code (PHP)
<!DOCTYPE html>
<html lang="en">
  <head>
      <meta name=”viewport” content=”initial-scale=2.0,width=device-width”/>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- Bootstrap -->
    <!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
    <!-- Optional theme -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">
    <title>Login by.devtai.com</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">
 
  </head>

  <body>
  <?php
  session_start();
        include_once('raspi_connect.php');
        
        if (isset($_POST['submit'])){
            $email= $_POST['email'];
            $password= $_POST['password'];
        
        $sql = "SELECT * FROM `register` WHERE `email` = '".$email."' 
        AND `password`= '".$password."' AND `active` ='No' AND `status`='0' " ; // 0
        
        $result=$conn->query($sql); 
        
        $row = $result->fetch_array();
               
 
               $_SESSION['name']=$row['name'];
                $_SESSION['email']=$row['email'];
                $_SESSION['status']=$row['status'];
                
                if($result->num_rows>0){ 
               
                    $sql = "SELECT * FROM `login2` WHERE `status` = '1' " ;
                    
                    $result=$conn->query($sql);
                            
                            if($result->num_rows>0){
                                    echo 'มีผู้ใช้งานช่องนี้อยู่ กรุณาใช้อุปกรณ์ในช่องอื่น';
                }else{
                                 
                
                            $strSQL = "UPDATE register SET status = '1' WHERE email = '".$email."' ";
                            $objResult=$conn->query($strSQL); 
                            
                           $sql = "INSERT INTO `login2` (`email`,`name`,`date_start`,`check_out`,`date_end`,`status`)
                            VALUES ('".$_SESSION['email']."','".$row['name']."','".date('Y-m-d H:i:s')."','0','".date('Y-m-d H:i:s',strtotime("+5 second"))."','1')";
                            $result=$conn->query($sql);
                            
                            $Uid =mysqli_insert_id($conn);
                            
                            $_SESSION['login_id']=$Uid;
                            header('location:page2.php');
                            
                        }
                            

                    }else{
                        echo 'กรุณาลงทะเบียน';
                        
                    }}
               ?>

<div align="center">
<img src = "https://upload.wikimedia.org/wikipedia/th/6/62/KMUTNB-LOGO.jpg" width="120" height="120" vspace="10">

<style type="text/css">
#btn{
width:50%;
align="center">
}
</style>

<div class="container" style="padding-top:10px" >
  <div class="row">
    <div class="col-xs-12">
    
    <div class="col-xs-12"  style="background-color:#FFE4B5">

    <h3 align="center">
      <span class="glyphicon glyphicon-lock"> </span>
      Login </h3>
      <form  name="form1" action="" method="POST" id="login" class="form-horizontal">
        <div class="form-group">
          <div class="col-xs-12">
            <input type="email"  name="email" class="form-control" required placeholder="Email" />
          </div>
        </div>
        
        
             <div class="form-group">
          <div class="col-sm-12">
            <input type="text"  name="password" class="form-control" required placeholder="Password" />
          </div>
        </div><div class="form-group">
          
        <div class="form-group">
          <div class="col-sm-12">
            <button type="submit" class="btn btn-warning" id="btn" name="submit">
            <span class="glyphicon glyphicon-log-in"> </span>
             Login </button>
             

                             
                        <div class="col-md-12">   
                            <lable>
                                  <a href="register.php"><font color="#FF6600" size=2 >register</a></font>
                                </label>
                </div>
                    </div>
                    <div class="col-md-12">   
                            <lable>
                                  <a href="forget.php"><font color="#FF6600" size=2 >forget your password</a></font>
                                </label>
           
          
          </div>
        </div>
      </form>
    </div>
  </div>
</div>
</div>


[/quote-no

Code (PHP)
<?php

	session_start();
    include_once('raspi_connect.php');
    


    $sql = "SELECT * FROM `register` WHERE `id` = '".$_SESSION['id']."' ";
    $result=$conn->query($sql);
    $row = $result->fetch_array();
    
    $sql = "SELECT * FROM `login2` WHERE `login_id`= '".$_SESSION['login_id']."' ";
    $result=$conn->query($sql);
    $row2 = $result->fetch_array();
    $Uid =mysqli_insert_id($conn);
  

?>
<html>
<head>
<title>page2</title>


  <body  >
<h1 align  = 'center'><font color="#FF6600" size=200 face=" Impact"> Welcome</font>
</h1> 
<h3 align  = 'center' line-height: 1pt> คุณ <?php echo $row2['name'];?> ได้ยืมอุปกรณ์จากช่อง หมายเลข1</h3><br/>
<h3 align  = 'center' line-height: 1pt> กรุณาคืนในวันที่ <?php echo $row2['date_end'];?></h3><br>
</body>
 


  </body>
  </head>

</html>
<?php
system("i2cset -y 1 0x20 0x00 0xFD");
		system ("i2cset -y 1 0x20 0x12 0x02");
  sleep(30);

   system ("i2cset -y 1 0x20 0x12 0x00");	
	 
?>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-03-29 16:54:33 By : 1372589436224688
 


 

No. 4



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



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


1 การใช้ html ควรใช้หลังจาก php ไม่ควร ใช้ก่อนคำสั่ง php เพราะคุณจะใช้ session_start ไม่ได้
2 เปิดการแสดง error ไว้ด้วย จะได้รู้ว่า error อะไรบ้าง (error เพียบ 55555555)
3 สิ่งที่ควรทำคือ จัด flow control ซะใหม่ให้มันเป็น ai มากขึ้น
ตรวจสอบช่องทางการ login ก่อน ถ้าไม่ว่างก็ควรจะ login ในช่องทางอื่น ให้ผู้ใช้เลย
ไม่ใช่ให้เขาไป login ช่องทางอื่น มันไม่ make sense
4 เปลี่ยน คำสั่งการ query จากการต่อ string ด้วย global variable ไปใช้ เครื่องมือของ mysqli
เช่นคำสั่ง prepare เพื่อป้องกัน sql injection
5 เมื่อใช้ คำสั่ง header เพื่อ redirect ควรใส่คำสั่ง exit; เพื่อจบโปรแกรม ณจุดนั้น
6 ศึกษาโปรแกรมที่ใช้เขียนร่วมกันให้ดีด้วย style css ที่เขียนมันไม่ถูกไวยกรณ์ หรือก๊อปปี้มาก็อ่านและใช้ให้ถูก
<style type="text/css">
#btn{
width:50%;
align="center">
}
</style>
//----------------------------------------------------------
ตัวอย่างการเขียน ที่ปลอดภัย และถูก algorithm
Code (PHP)
<?php
session_start();
include_once('raspi_connect.php');
$msg='';
if (isset($_POST['submit'])){
    $sql = "SELECT * FROM `login2` WHERE `status` = '1' " ;
    $result=$conn->query($sql);
    if($result->num_rows>0){
        $msg='มีผู้ใช้งานช่องนี้อยู่ กรุณาใช้อุปกรณ์ในช่องอื่น';
        // ตรงนี้ จะให้เขา login ช่องทางไหนก็กำหนดไป ไม่ใช่ให้เขาเลือก
    }else{
        $email= $_POST['email'];
        $password= $_POST['password'];
        $sql = "SELECT * FROM `register` WHERE `email` = ? AND `password`= ? AND `active` ='No' AND `status`='0' " ; // 0
        $stmt = $conn->prepare($sql);
        $stmt->bind_param('ss',$email,$password);    
        $stmt->execute();
        $result = $stmt->get_result();
        if ($result->num_rows>0){        
            $row = $result->fetch_object();
            $stmt1 = $conn->prepare('UPDATE register SET status = '1' WHERE email = ?');
            $stmt1->bind_param('s',$email); $stmt->execute(); $stmt1->close();
            $sql = "INSERT INTO `login2` 
(`email`,`name`,`date_start`,`check_out`,`date_end`,`status`)
VALUES (?,?,?,0,?,1)";
            $stmt1 = $conn->prepare($sql);
            $stmt1->bind_param('',$row->email,$row->name,date('Y-m-d H:i:s'),date('Y-m-d H:i:s',time()+5));
            $stmt1->execute();
            $row->login_id=$stmt1->insert_id;
            $_SESSION['login']=json_encode($row);
            // เปลี่ยนการกำหนด session โดยใช้ หลายตัวแปรในการเก็บ 
            // ให้เก็บเป็น ก้อน object เวลานำมาใช้ ก็ decode ออกมาเป็น object
            header('location:page2.php');
            exit; // หลัง redirect ควรจบโปรแกรม ณ ตรงนี้ ไม่ต้องปล่อยให้ทำงานต่อไปอีก
        }else{
            $msg='กรุณาลงทะเบียน';                        
        }
    }
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta name=”viewport” content=”initial-scale=2.0,width=device-width”/>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap -->
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
    integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" 
    integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">
<title>Login by.devtai.com</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet"> 
<style type="text/css">
#btn{ width:50%; align: center; }
</style>
</head>
<body>
<?=($msg>''? $msg : '')?>
<div align="center">
    <img src = "https://upload.wikimedia.org/wikipedia/th/6/62/KMUTNB-LOGO.jpg" width="120" height="120" vspace="10">
    <div class="container" style="padding-top:10px" >
        <div class="row">
            <div class="col-xs-12">    
                <div class="col-xs-12"  style="background-color:#FFE4B5">
                    <h3 align="center">
                        <span class="glyphicon glyphicon-lock"></span> Login 
                    </h3>
                    <form  name="form1" action="" method="POST" id="login" class="form-horizontal">
                        <div class="form-group">
                            <div class="col-xs-12">
                                <input type="email"  name="email" class="form-control" required placeholder="Email" />
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-sm-12">
                                <input type="text"  name="password" class="form-control" required placeholder="Password" />
                            </div>
                        </div>
                        <div class="form-group">          
                            <div class="form-group">
                                <div class="col-sm-12">
                                    <button type="submit" class="btn btn-warning" id="btn" name="submit">
                                        <span class="glyphicon glyphicon-log-in"> </span> Login
                                    </button>
                                    <div class="col-md-12">
                                        <lable><a href="register.php"><font color="#FF6600" size=2 >register</a></font></label>
                                    </div>
                                </div>
                                <div class="col-md-12">   
                                    <lable><a href="forget.php"><font color="#FF6600" size=2 >forget your password</a></font></label>
                                </div>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
</body>
</html>


และตรงไหน มันการ relay ยังไม่เห็นเลย หรือใช้ศัพท์ผิด redirect
ส่วนไฟล์ page2.php ลองศึกษาจากตัวอย่าง และเขียนเองดู มันไม่น่าจะยาก


ประวัติการแก้ไข
2020-03-29 20:09:05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-03-29 20:05:53 By : Chaidhanan
 


 

No. 5



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



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

"...ซึ่งหน้าที่ 2 ผมใส่คำสั่งเปิดรีเลย์ ล้ว sleep วิ จากนั้นปิดรีเลย์ "
การเปิด/ปิด รีเลย์ คงหมายถึง การควบคุมรีเลย์ผ่านตัวขยาย MCP23017 I2C ของ Single-board computer ครับ

จากส่วนท้าย หน้า 2
Code (PHP)
//...
<?php
	//เปิดรีเลย์
	system("i2cset -y 1 0x20 0x00 0xFD");
	system ("i2cset -y 1 0x20 0x12 0x02");

	sleep(30);

	//ปิดรีเลย์
	system ("i2cset -y 1 0x20 0x12 0x00");   
?>


ผมเข้าใจว่าสิ่งที่ จขกท.ต้องการ คือ ให้แสดง output ที่อยู่ก่อน sleep() ไปยัง browser ของ client ทันทีก่อนการ sleep() แล้วค่อยสั่งปิดรีเลย์...แต่ผลลัพธ์กลับกลายเป็นว่า เป็นหน้าขาวอยู่ 30 วิ content จึงแสดงพร้อมคำสั่งปิดรีเลย์

ตอบ จขกท. sleep() ของ server-side language(PHP) จะประมวลผลเสร็จก่อนค่อยแสดงไปยัง client(พฤติกรรมของ preprocessor) ...ถึงจะมีกลวิธีต่างๆ เช่น พวก ob_* หรือการ tweak อื่นๆ ก็ยังสู้ฝั่ง client-side(JavaScript) ไม่ได้ครับ

https://stackoverflow.com/questions/3078867/php-output-text-before-sleep



ตอบความคิดเห็นที่ : 4 เขียนโดย : Chaidhanan เมื่อวันที่ 2020-03-29 20:05:53
รายละเอียดของการตอบ ::
ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-03-29 21:29:14 By : PhrayaDev
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : PhrayaDev เมื่อวันที่ 2020-03-29 21:29:14
รายละเอียดของการตอบ ::
เพิ่งเห็น sleep() ในไฟล์ page2.php


ตัวอย่างการใช้ ob_xxx()
Code (PHP)
		ob_end_clean();
		header("Connection: close");
		ignore_user_abort(true);
		ob_start();
//-------------------------------------
		echo 'Text the user will see';
//-------------------------------------
		$size = ob_get_length();
		header("Content-Length: $size");
		ob_end_flush(); // All output buffers must be flushed here
		flush();        // Force output to client
		// Do processing here 
		sleep(30);

ที่มารค์ไว้ คือโค๊ดของ จขกท ที่จะส่งไปให้ client
ส่วนก่อน sleep จะถูกส่งออกไปปกติ แล้วตัด connection
เมื่อ browser ได้รับคำสั่ง connection close ก็จะเริ่มประมวลผล ไม่ต้องรอคำสั่ง sleep

ส่วนจะทำอะไรต่อ ไม่รู้เหมือนกัน เพราะหลังจาก sleep มันทำงานอะไรไม่รู้ 55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-03-29 22:33:46 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

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