1

ログインしているユーザーのログアウトへのログインリンクをナビゲーションバーに置き換えて、助けが必要です。次のコードを試しました。

<?php   
    if(isset($_SESSION['username'])) {
        echo '<li><a href="logout.php"><span>Log Out</span></a></li>';
    } else {
        echo '<li><a href="login.php"><span>Log In</span></a></li>';
    } 
?>  

しかし、それは機能しません。それでも、ナビゲーションバーに[ログイン]ボタンが表示されます。
nav.phpにコードを挿入しましたnav.php
のコードは次のようになります

<div id='cssmenu'>
    <ul>  

        <?php include('include\menuspace.php'); ?>  

        <li><a href='index.php' id='framside' onclick='changeDiv('1')'><span>Framsida</span></a></li>  

        <li><a href='skolen.php' id='skulen'><span>Skulen</span></a></li>  

        <?php include('include\ifnotie.php'); ?>
        <?php include('include\ifie.php'); ?>  

        <li><a href='elevar.php' id='elevrådet' onclick='changeDiv('3')'><span>Elevrådet</span></a></li>  

        <li><a href='ledelsen.php' id='ledelse' onclick='changeDiv('4')'><span>Ledelse</span></a></li>  

        <li><a href='kontakt.php' id='kontakt' onclick='changeDiv('5')'><span>Kontakt</span></a></li>  

        <?php if(isset($_SESSION['username'])) {
        echo '<li><a href="logout.php"><span>Log Out</span></a></li>';
        } else {
        echo '<li><a href="login.php"><span>Log In</span></a></li>';
        } ?>  

    </ul>
</div>  

nav.phpは単一のファイルで<?php include'(include/nav.php)'; ?>
あり、ナビゲーションバーを必要とする各phpファイルのコードを使用します。

これは、 アクセス制御されたページのPrint Screenであり、表示 するにはログインする必要があります。

- -編集 - -

LotusHが言ったように if(isset($_SESSION['username']))if(isset($_SESSION['name_of_user']))

ログアウトボタンをクリックするまで動作します。その後、ログインに戻ることはありません。

---編集-2012年4月19日----

ログアウトがログインに変わる問題を修正しました。session_destroy();を配置する必要がありました。

4

2 に答える 2

1

の出力によるとvar_dump($_SESSION)

array(3) { 
   ["name_of_user"]=> string(13) "Administrator" 
   ["email_of_user"]=> string(19) "ikt-kons-ost@hfk.no" 
   ["usr_7fe2869648"]=> string(13) "Administrator" 
} 

コメントでは、次のように書き直す必要がありif(isset($_SESSION['username']))ますif(isset($_SESSION['name_of_user']))

于 2013-03-21T14:04:58.677 に答える
0

最初にあなたが持っているかどうかを確認しますstartsessionsession_start();そうでない場合は、上部に書き込みます

次に、次のコードを試してください。

<?php   
    if(isset($_SESSION['username']) and $_SESSION['username']!='') {
        echo '<li><a href="logout.php"><span>Log Out</span></a></li>';
    } else {
        echo '<li><a href="login.php"><span>Log In</span></a></li>';
    } 
?> 
于 2013-03-21T13:27:12.690 に答える