PHP会话未知错误

时间:2012-05-11 00:01:58

标签: php

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

我收到错误:

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';
    }

我的index.php中的代码似乎导致错误:

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

任何帮助都会非常感激。谢谢!

2 个答案:

答案 0 :(得分:2)

在将任何输出打印到浏览器之前,必须调用

session_start()。因为您在开始会话之前打印了一个javascript脚本,所以已经设置了标头,因此无法启动会话。

答案 1 :(得分:1)

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