login.php文件
<?php
session_start();
?>
<?php
if($_POST['submit1'])
{
$v1 = "FirstUser";
$v2 = "MyPassword";
$v3 = $_POST['text1'];
$v4 = $_POST['pwd'];
if($v1 == $v3 && $v2 == $v4)
{
$_SESSION['luser'] = $v1;
//-----------------------------------------------
$_SESSION['start'] = time(); // taking now logged in time
$_SESSION['expire'] = $_SESSION['start'] + (5 * 60) ; // ending a session in 30 minutes from the starting time
header("location: http://127.0.0.1/session_exmpl/home.php");
//-----------------------------------------------
}
else
{
echo "Please enter Username or Passwod again !";
}
}
?>
<html>
<form name="form1" method="post">
<table>
<tr><td>Username </td><td><input type="text" name="text1"></td></tr>
<tr><td>Password</td><td><input type="password" name="pwd"></td></tr>
<tr><td><input type="submit" value="SignIn" name="submit1"> </td></tr>
</table>
</form>
</html>
home.php文件
<?php
session_start();
if(!isset($_SESSION['luser']))
{
echo "Please Login again";
echo "<a href='http://localhost/somefolder/login.php'>Click Here to Login</a>";
}
else
{
$now = time(); // checking the time now when home page starts
if($now > $_SESSION['expire'])
{
echo $now;
?> <br>
<?
echo $_SESSION['expire'];
session_destroy();
echo "Your session has expire ! <a href='http://127.0.0.1/session_exmpl/login.php'>Login Here</a>";
}
else
{ //starting this else one [else1]
?>
<!-- From here all HTML Coding can be done -->
<html>
<br />
<?
echo $_SESSION['start'];
?>
<br />
<?
echo $_SESSION['expire'];
?>
Welcome <?php echo $_SESSION['luser'];
?>
</html>
<?php
}
}
?>
here there are two file login.php and home.php when user successfully logedin the session start with that logedin time and session timed out after 5 minutes.
它从登录时间计算时间,但现在我想用空闲会话超时更改此会话。 它应该在用户不对主页执行任何操作时销毁,会话应该销毁我需要的更改。谢谢高级....
答案 0 :(得分:0)
呈现页面后,PHP就完成了。您需要使用客户端语言来执行此操作。
可能最合理的方法是使用PHP将expire值导出到JavaScript变量中,然后设置一个interval侦听器,它将检查到期时间是否小于现在,如果是,则提醒用户。
如果你仍然想要使用PHP(破坏会话,与数据库通信等),唯一的方法是进行AJAX调用,你仍然可以通过JavaScript进行调用。通俗地说,PHP一旦呈现页面就会入睡,您可以使用AJAX调用来唤醒它。
由于您没有显示任何解决此问题的尝试,我不打算给您任何代码。但是,我上面写的内容足以让你开始。