0

ログインを含むWebサイトがあり、ユーザーがログインすると、メインページにメッセージを表示し、セッションを続行したいと考えています。

エラーが表示されます:

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

どんな助けでも大歓迎です。ありがとうございました!

4

2 に答える 2

2

session_start()出力がブラウザに出力される前に呼び出す必要があります。セッションを開始する前に JavaScript スクリプトを出力するため、ヘッダーが既に設定されているため、セッションを開始できません。

于 2012-05-11T00:05:56.030 に答える
1

<?php1 行目の宣言の前にスペースがあるようです。これにより、ヘッダーが前に送信されsession_start()、受信しているエラーが発生する可能性があります。

于 2012-05-11T00:04:25.473 に答える