所以,我在这个网站上工作:
http://www.funkydictionary.com/signup.php
我遇到了一个非常奇怪的问题,我以前没有遇到过,我有一个登录页面,到目前为止,一个注册页面,服务器语言是PHP,我通过会话传递错误和成功消息,所以,当用户尝试登录或注册时,成功或失败$_SESSION设置。
他被重定向到注册页面,在那里他的错误/成功将被显示。
现在由于一些奇怪的原因,会话不能设置,我注意到图标也不显示,直到浏览器刷新?
当这种情况发生时,一切工作正常,但如果浏览器关闭,因此所有会话未设置,同样的问题发生吗?
我猜这与服务器配置有关?
感谢您的帮助
编辑1:这包含在每个页面的顶部:
<?php
session_start();
if(isset($_SESSION['login']) && $_SESSION['login'] == 1) {
$error_message = "";
$success_message = "";
$now = time(); // checking the time now when home page starts
if($now > $_SESSION['expire'])
{
session_unset();
session_destroy();
global $loggedIn;
$loggedIn = null;
$error_message = 'Your session has expired, please login again.<br />';
session_start();
$_SESSION['error'] = $error_message;
died($success_message, $error_message, '/login.php');
}
else {
global $loggedIn;
$loggedIn = 1;
}
}
?>
编辑2:会话何时/如何过期?
在登录时设置一个会话['start'] = time();And ['expire'] = start + 60*60
代码
session_start();
$_SESSION['login'] = "1";
$_SESSION['username'] = $row['username'];
$_SESSION['start'] = time();// taking now logged in time
$_SESSION['expire'] = $_SESSION['start'] + (60 * 60) ; // ending a session in 30 minutes from the starting time
global $loggedIn;
$loggedIn = 1;
$success_message = 'You have logged in as ' . $row['username'];
died($success_message, $error_message, '/login.php');
Ok,我修复了它,我不知道到底是什么修复了它,但我改变了一些session_start()输入表单和会话错误处理,favicon现在似乎也更新了,就像在,新的favicon