重新加载网页时丢失会话,php$\u会话

重新加载网页时丢失会话,php$\u会话,php,session,session-variables,reload,Php,Session,Session Variables,Reload,我做了一个简单的php网页来控制连接到mysql数据库的登录,它工作得很好,但是如果我重新加载网页,我就会失去$\u会话,我的代码是: <?php session_start(); include_once('clases/Usuario.php'); // Declaración de variables $user = new Usuario(); $msg = ""; // Controlo el log in if (is

我做了一个简单的php网页来控制连接到mysql数据库的登录,它工作得很好,但是如果我重新加载网页,我就会失去
$\u会话
,我的代码是:

<?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>

实例

我修复了,问题是我试图在
$\u会话['user']
中存储
PDO语句
,我不知道它导致了一些问题,比如我的问题,所以我在
登录
中返回之前获取了PDO语句,现在它已全部修复。

您不应该在每个页面的开头使用session\u start吗?您从未调用session\u start(),因此PHP没有义务为您保存会话数据。抱歉,它没有显示正确的代码,我有“session\u start())”“是的