嘿,伙计们其实是php的新手。。我有一个输入表单,当用户在该输入表单中键入内容时,它会显示。我想做的是,一分钟后我希望会话过期并重定向到另一个网站。。我知道这可以用javascript轻松完成。。但我想用php会话来完成。。所以我写的代码是
<?php
if ( isset($_POST['firstname'])) {
echo $_POST['firstname'];
session_start();
$_SESSION['logintime'] = time();
if(time() - $_SESSION['logintime'] > 60) {
header('Location: http://www.google.com/');
} else {
echo 'blah';
}
}
?>
当我运行代码时,我得到inputname和blah
(这意味着第二个if语句不起作用)。
希望你们能帮我。。任何帮助都将不胜感激。。感谢
"一分钟后"。。这是行不通的。PHP是服务器端的,所以在PHP能够控制任何事情之前,您需要与服务器进行交互(就像页面加载一样)。实现所描述内容的唯一方法是使用Javascript。
这里有一些伪代码,即根本没有测试,以演示:
PHP
<?php
session_start();
$_SESSION['logintime'] = time(); // when the login occurs
?>
JavaScript
<script>
// using jQuery
$(function(){
var loginTime = <?php echo $_SESSION['logintime`]; ?>; // places PHP variable into JS variable
var testSession = setInterval(function(){
var currentTime = Date.now() * 1000; // convert to UNIX time for easy math
if((currentTime - loginTime) > 60) {
// ajax to request session unset
$.post('clear_session.php', function() {
console.log('session destroy request');
});
window.location.href = 'wherever.html'; // redirect
}
}, 1000); //test each second
});
</script>
clear_session.php
<?php
session_start();
// belt and suspenders
session_unset();
unset($_SESSION);
session_destroy();
?>