嘿伙计们实际上是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语句不起作用)。
希望你们能帮助我。任何帮助都会受到赞赏。谢谢
答案 0 :(得分:0)
&#34;一分钟后#34; ..这不行。 PHP是服务器端,所以在PHP可以控制任何东西之前,你需要与服务器交互(比如加载页面)。执行您所描述的内容的唯一方法是使用Javascript。
答案 1 :(得分:0)
以下是一些伪代码,即未经过测试,以证明:
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();
?>