丢失了重新加载网页的会话,php$_session


Lost session reloading the webpage, php $_SESSION

我做了一个简单的php网页,它控制连接到mysql数据库的登录,效果很好,但如果我重新加载网页,我会丢失$_SESSION,我的代码是:

<?php
    session_start();
    include_once('clases/Usuario.php');
    // Declaración de variables
    $user = new Usuario();
    $msg = "";
    // Controlo el log in
    if (isset($_POST['login']))
    {
        try
        {
            $_SESSION['user'] = $user->login($_POST['user'], $_POST['pass']);
            $_SESSION['log'] = true;
            $msg = "Conectado";
        }
        catch (Exception $e)
        {
            $msg = $e->getMessage();
        }
    }
    // Controlo el log off
    if (isset($_POST['logoff']))
    {
        $_SESSION['user'] = null;
        $_SESSION['log'] = null;
        $msg = "Desconectado";
    }
?>
<html>
    <head>
        <meta charset="UTF-8">
        <title>example</title>
    </head>
    <body>
<?php
    if ($msg != "") echo "<font color='red'><h2>" . $msg . "</h2></font>"; // Mensaje de error si se diera el caso
    // Controlo si está logueado o no
    if (isset($_SESSION['log']) && $_SESSION['log'])
    {
?>
        <h1>Panel</h1>
        <form action='index.php' method='post'><input type='submit' name='logoff' id='logoff' value='Log off' /></form>
<?php
    }
    else
    {
?>
        <h1>Login</h1>
        <form action='index.php' method='post'>
            <table>
                <tr>
                    <td><b>Usuario:</b></td>
                    <td><input type='text' id='user' name='user' /></td>
                </tr>
                <tr>
                    <td><b>Contraseña:</b></td>
                    <td><input type='password' id='pass' name='pass' /></td>
                </tr>
                <tr>
                    <td colspan='2'><input type='submit' id='login' name='login' value='Log in' /></td>
                </tr>
            </table>
        </form>
<?php   
    }
?>
    </body>
</html>

我做了很多登录,效果很好,但我很长一段时间都没有编程php,很可能我错过了什么。

我修复了,问题是我试图在$_SESSION['user']中存储一个PDO Statement,我不知道它引起了一些问题,比如我的问题,所以我在login中返回之前提取了PDOStatement,现在它都修复了。