我正在进行验证会话,我得到的字段是“警告:未定义的数组键”,这个问题现在发生了,警告错误--我的php代码已经失败了--请看我正在做什么wrong...thanks.
这些字段是我得到的错误:
Warning: Undefined array key "lastActiveTime"
Warning: Undefined array key "USERNAME"
Warning: Undefined array key "SESSION_ID"
Warning: Undefined array key "HTTP_USER_AGENT"
Warning: Undefined array key "REMOTE_ADDR"
php代码:
function validate_session()
{
//error_reporting(E_ERROR | E_PARSE);
$time_outvalue = 18000; // for session timeout
$now = time();
$diff = $now - $_SESSION['lastActiveTime'];
$username = $_SESSION['USERNAME'];
$session_id = $_SESSION['SESSION_ID'];
if(($diff >= $time_outvalue && isset($_SESSION['lastActiveTime'])) || (($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT'])) && ($_SESSION['REMOTE_ADDR'] != $_SERVER['REMOTE_ADDR']))){ // Session timeout
setcookie("PHPSESSID", "", time()-3600);
unset($_SESSION['lastActiveTime']);
unset($_SESSION['username']);
session_destroy();
}
$_SESSION['lastActiveTime'] = time();
}
发布于 2022-03-07 06:49:44
try like this...
//php code
function validate_session()
{
//error_reporting(E_ERROR | E_PARSE);
$time_outvalue = 18000; // for session timeout
$lastActive = $_SESSION['lastActiveTime']??'0';
$userName = $_SESSION['USERNAME']??'';
$sessionId = $_SESSION['SESSION_ID']??'0';
$now = time();
$diff = $now - $lastActive;
$username = $userName;
$session_id = $sessionId;
if(($diff >= $time_outvalue && isset($lastActive)) || (($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT'])) && ($_SESSION['REMOTE_ADDR'] != $_SERVER['REMOTE_ADDR']))){ // Session timeout
setcookie("PHPSESSID", "", time()-3600);
unset($lastActive);
unset($userName);
session_destroy();
}
$lastActive = time();
}
发布于 2022-03-07 06:42:23
$_SESSION
在session_start()
之后创建(或者如果在php.ini
中启用了session.auto_start
),您可以在begin中添加类似于isset($_SESSION) || session_start();
的内容。
https://stackoverflow.com/questions/71376332
复制相似问题