【问题标题】:How to keep the session variable even after page refresh automatically即使在页面自动刷新后如何保持会话变量
【发布时间】: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'])) {

标签: php mysql session


【解决方案1】:
//button press time will be saved in a session variable
if (isset($_GET['Start_Now'])){

我想你已经写好了代码 也许您也可以将 isset 与 $_SESSION 一起使用。

if (!isset($_SESSION)){
  session_start();
}

【讨论】:

    【解决方案2】:

    要使用会话变量,您必须在每个页面上都有启动会话。因此,只需将此代码如下所示放在页面标题处。

    if(!isset($_SESSION))
       session_start();
    

    【讨论】:

    • 请阅读 cmets,我已经问过“提问者”是否开始了会话。不要假设事情,而是检查,检查和仔细检查
    • 我已经做到了。我的问题是刷新页面与用户按下 Start_Now 按钮的效果相同。所以它将会话变量重置为新时间
    猜你喜欢
    • 2017-07-26
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    • 2015-03-21
    • 2014-05-06
    • 1970-01-01
    相关资源
    最近更新 更多