非常奇怪的问题,$_SESSIONs不工作,favicon在第二次刷新前不显示


Very odd issue, $_SESSIONs not working, and favicon not showing before second refresh?

所以,我在这个网站上工作:

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