1

私のウェブサイトでは、ページの上部でセッションを開始します。ページの後半にナビゲーション バーを含めました。これは完全なファイルです ( nav.php):

<div class="inner">
<ul id="nav" class="menu">
    <li class="first"><a href="#">Home</a></li>
    <li><a href="#">Brugklas</a>
        <ul>
            <li class="child"><a href="#">123</a></li>
            <li class="child"><a href="#">456</a></li>
            <li class="child"><a href="#">789</a>
                <ul>
                    <li><a href="#">Hello</a></li>
                    <li><a href="#">I&rsquo;m here!</a>
                       <ul>
                            <li><a href="#">Hello</a></li>
                            <li><a href="#">I&rsquo;m here!</a></li>
                        </ul> 
                    </li>
                </ul>
            </li>
        </ul>
    </li>
    <li><a href="#">Klas 2</a></li>
    <li><a href="#">T&amp;O</a></li>
    <li><a href="#">Algemeen</a></li>
    <?php
    if(isset($_SESSION['logged_in'])){
        echo '<li><a href="#">Portal</a></li>';
        echo '<li class="last"><a href="javascript:void(0);" onclick="logout();">Logout</a></li>';
    } else {
        echo '<li class="last"><a href="javascript:void(0);" onclick="showLoginScreen();">Login</a></li>';
    }
    ?>
</ul>

ログインするまで、これで問題なく動作します。(完全にjQuery、AJAXスタイルで行われます)ログインに成功するとすぐに。更新された情報 (ログアウト リンクとポータル リンク) で変更する必要があるため、ナビゲーション バーを (AJAX 経由で) 再読み込みします。これは機能しません。session_start();先頭に追加するとすぐに機能しnav.phpますが、セッションが既に開始されているというPHPエラーが発生します。

エラーを表示しないことでこれを解決できます。これは で行われ@session_start();ますが、私の目には、コードはまだ悪いです。@の前になくても問題を解決するにはどうすればよいですかsession_start();

私の質問が明確であることを願っています。

4

1 に答える 1