【发布时间】:2015-04-09 11:50:22
【问题描述】:
所以我希望用户在登录时能够从几个选项中进行选择。这些选项用于会话何时超时。因此,如果用户选择选项 1 并登录,10 秒后会话应该结束,他们应该退出。
HTML
旁注 - 这只是感兴趣的 HTML sn-p,显然表单还包括其他内容,如按钮等。
<form id="logged" method="POST" action="thisdocument.php">
<select name="options">
<option value="test">10s</option>
<option value="hour">1hr</option>
</select>
</form>
PHP
旁注 - 执行实际超时的代码本身就可以正常工作。因此,如果我将它放在没有用户选项的页面上,当用户登录时,它将在我指定的时间内超时,但我的问题是根据他们想要登录的时间来选择此选项.
$opt = (isset($_POST['options']) ? $_POST['options'] : null);
if ($opt == "test") {
$now = time();
if (isset($_SESSION['discard_after']) && $now > $_SESSION['discard_after']) {
session_unset();
session_destroy();
session_start();
}
$_SESSION['discard_after'] = $now + 10;
}elseif ($opt == "hour"){
echo "1 Hour"; //I'm just leaving these like this to save space. If we can sort out the first, I can just use it for the second option.
}else{
echo "";
}
所以我不知道为什么,但这似乎不起作用,我的初级 PHP 逻辑告诉我应该这样做。没有给出错误。我只包含了一小部分代码,其中的部分是有趣的。我认为帖子越小越干净,人们就越有可能看到错误。
【问题讨论】:
-
您能否在比较之前回显
$_SESSION['discard_after']和$now来测试输出? -
您的意思是输出可能有问题吗?代码独立工作,只是不在选项 if 语句中。
标签: php session select timeout