以下代码仅在会话超时时调用。我基本上想要显示一个带有javascript的确认对话框,以便用户选择是否要保持在线状态。我的问题是,即使确认为真,关闭javascript内部会话的php似乎也会被执行。
if (isset($_SESSION['username']) && isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity'] > 5)) {
?>
<script type="text/javascript">
if (confirm("You were logged off due to inactivity, if you would like to remain logged in click OK.")) {
header("Location:/");
} else {
<?php
connect();
if(!connect()) {
die('Could not connect: ' . mysql_error());
header( "refresh:3; url=/index.php" );
}
mysql_select_db('www');
$user = $_SESSION['username'];
mysql_query("UPDATE users SET online='0'
WHERE username='$user'");
session_unset();
session_destroy();
?>
}
</script>
<?php
}
$_SESSION['last_activity'] = time(); // update last activity time stamp
?>
答案 0 :(得分:2)
在浏览器加载页面之前,PHP代码运行。浏览器加载页面后,运行JavaScript。你不能只是像这样混合它们,并期望一切都以某种方式愉快地工作。请参阅HTTP,AJAX和WebSockets。