【发布时间】:2019-08-20 08:59:34
【问题描述】:
我的传感器设备每 10 秒向 DB 发送一些新数据。当用户按下按钮(Start_Now)以显示从现在开始的数据时,我试图显示这些数据。我将按钮按下时间保存在会话变量中,并在 sql 查询中使用该时间数据来提取数据。但我的问题是因为我每 10 秒就有一次新数据,所以我应该每 10 秒自动刷新一次页面。但它会将会话变量更改为新的刷新时间。如何避免?
// a button to Start_Now- Not showed
//session already started... include('session.php');
//page refreshes every 10 seconds
$sqlTime =NULL; // a time variable to include in sql query
//button press time will be saved in a session variable
if (isset($_GET['Start_Now'])){
$timeNow = date("Y-m-d H:i:s", time());
$_SESSION['timeNowSession'] = $timeNow
}
include ("connect.php");
$conn= mysqli_connect( $dbhost, $dbuser, $dbpass, $db );
if ($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$sqlTime =$_SESSION['timeNowSession'];
if ($sqlTime !=NULL)
{
$sql = "SELECT Data FROM MyDB AND Date > '$sqlTime' ORDER BY Date DESC;
}
//Rest of the code to execute query and display data
【问题讨论】:
-
您是否使用
session_start();开始您的会话? -
你确定。即使我没有显示。我有一个登录页面。
-
很好,但是您需要在每个页面上启动该会话。否则,您将丢失会话变量
-
我已经添加了
include('session.php');那个contians 会话验证。 -
是的,您应该检查 url 参数,以及会话变量是否已经存在(以确保它不会重置),例如:
if (isset($_GET['Start_Now']) && !isset($_SESSION['timeNowSession'])) {