PHP 会话未知错误


PHP sessions unknown error

我有一个包含登录名的网站,当用户登录时,我希望它在主页上显示一条消息并继续进行会话。

我收到错误:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by..

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent

当我没有登录时,它会显示错误,但是一旦我登录并返回页面,它就会消失,但不会像它应该的那样显示"您已登录!

这是我在检查数据库是否匹配后的身份验证代码:

if ($result["userName"] == $_POST[txtUsername] && $result["password"] ==$_POST[txtPassword])
    {
        ?>
        <script type="text/javascript">;
        alert("successfully logged in, <?php echo $result['userName'];?>!");
        window.location.href='http://manning3.jcu.edu.au/~jc192699/index.html';
        </script>
        <?php
        session_start();
        $_SESSION["access"] = 'granted';
    }

而我的索引中的代码.php这似乎导致了错误:

 <?php
    session_start();
    if ($_SESSION["access"] == 'granted'){
        ?>
        <p>You are logged in!</p>
        <?php
    }
    else{
    ?>
    <p>You are not logged in!</p>
    <?php
    }
    ?>

任何帮助将不胜感激。谢谢!

session_start()必须在

将任何输出打印到浏览器之前调用。 由于您在启动会话之前打印了 javascript 脚本,因此已设置标头,因此无法启动会话。

看起来

您在第 1 行的 <?php 声明之前有一个空格。 这将导致标头在session_start()之前发送,并可能导致您收到的错误。