php - 将 $_session 和 session_start() 与 int 列一起使用

标签 php mysql session

我想检查自 session 启动以来已经过去了多长时间,并与 INT 中的数据库列值进行比较,以查看它是否已过期并注销用户。 在不活动的地方= 10;在下面的代码中,我想以 INT 形式传递 db 列值

<?php require_once('Connections/noundb.php'); ?>
<?php
//initialize the session
if (!isset($_SESSION)) {
  session_start();
}
 $inactive = 10; // Set timeout period in seconds

if (isset($_SESSION['timeout'])) {
    $session_life = time() - $_SESSION['timeout'];
    if ($session_life > $inactive) {
        session_destroy();
        header("Location: l.php");
    }
}
$_SESSION['timeout'] = time();



// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  //to fully log out a visitor we need to clear the session varialbles
  $_SESSION['MM_Username'] = NULL;
  $_SESSION['MM_UserGroup'] = NULL;
  $_SESSION['PrevUrl'] = NULL;
  unset($_SESSION['MM_Username']);
  unset($_SESSION['MM_UserGroup']);
  unset($_SESSION['PrevUrl']);

  $logoutGoTo = "l.php";
  if ($logoutGoTo) {
    header("Location: $logoutGoTo");
    exit;
  }
}
?>

最佳答案

我建议您在 require 之前启动 session 一次,并且不要关闭和打开 php 标签:这意味着要发送到客户端的输出,然后无法启动“托管” session 。

试试这个:

<?php
//initialize the session
if (!isset($_SESSION)) {
  session_start();
}

require_once('Connections/noundb.php');
// [other code ]

关于php - 将 $_session 和 session_start() 与 int 列一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25745162/

相关文章:

PHP:如何在文本框中保存超链接的名称

php - 如何对mysql_real_escape_string进行SQL查询?

mysql - 请求批准数据库模型

php - Composer 需要没有 dev-master

java - 每个用户的 PHP 图像路径不同

php - 定位mysql数据库中不可见的utf8字符

javascript - 后端只能替代 javascript 周期性函数调用吗?

node.js - Express 和 Redis session 的过期时间

MySQL 重复事件未执行

javascript - 日本字 rune 件名在文件上传php时变成未命名文件