我遇到了一个让我发疯的 PHP 会话的奇怪问题。这是我正在做的事情的要点
$tout = time();
session_start();
$_SESSION['dna'] = md5($_SERVER['HTTP_USER_AGENT']);
if (1 == $user->demo)
$_SESSION['demo'] = $user->demo;
$_SESSION['tout'] = $tout;
这似乎工作得很好。然而,这种变体
$tout = time();
session_start();
$_SESSION['dna'] = md5($_SERVER['HTTP_USER_AGENT']);
if (1 == $user->demo)
{
$_SESSION['demo'] = $user->demo;
$tout += 900;
} else
$tout += 7200;
$_SESSION['tout'] = $tout;
丢弃整个 $_SESSION 数组。
简而言之,我想要做的是跟踪用户会话在每次与服务器的后续交互时确定会话是否应标记为超时并相应地通知用户。在演示模式下超时应为 900 秒,否则为 7200 秒。
也许我的 32 位本地 WAMP 服务器上的整数算术存在问题,尽管我对此表示怀疑,因为我在其中执行算术并回显结果的简单测试脚本有效。这表明将结果存储在会话数组中存在某种问题。
这正在驱使我绕过弯道,我确信这里有一些明显的东西我没有看到。任何帮助将非常感激。