0

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

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(); 和 ['expire'] = 开始 + 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');
4

1 回答 1

0

好的,我修复了它,我不知道到底修复了什么,但是我更改了一些 session_start() 输入表单和会话错误处理,favicon 现在似乎也更新了,就像新的 favicon

于 2013-05-03T22:20:52.853 回答