0

長い間解決できなかった問題に遭遇しました。私は1つの単一のセッション変数を設定解除するphpでスクリプトを作成しましたが、ページはセッションを統計しますこれはページの私のコードです:

    <?php
session_start();

require_once("../header.php");
    if($_SESSION['user']) {

    unset($_SESSION['user']);
        echo "you succesfully logged out.";
        header("Refresh:5; url=http://www.webmasteroutlet.com");


    } else {    
        echo "you are already NOT LOGGED IN right now.";
    }
require_once("../footer.php");
?>

それがこのページのコード全体です。そして、常に「あなたは現在すでにログインしていません」と出力されます。 $_SESSION['user']login.phpページでtrueが割り当てられており、開いたsession_start();直後のページの最初にあります<?php。セッション変数は、php 拡張子を持つ他のすべてのファイルで認識され、それが機能していない唯一のファイルです。私も試しました

<?php 
session_start();
echo $_SESSION['user'];
?>

何も印刷されません。その行をスキップするだけで、何もしません。私は何を間違っていますか?ご助力ありがとうございます。これは header.php コードです

<?php 
session_start();
require("config.php"); // that only contains connection to the database and it is successful.

if(isset($_SESSION['user'])==1){
                    echo "<div id=\"topnav\" class=\"topnav\"><a href=\"#\" class=\"signup\"><span>".$_SESSION['username']."</span></a>  <a href=\"http://www.webmasteroutlet.com/users/logout.php\" class=\"signup\"><span>LOGOUT</span></a></div>";
                }
            else    if ($_SESSION['admin']) {
                    echo "<div id=\"topnav\" class=\"topnav\">"."<a href=\"#\" class=\"signup\"><span>".$_SESSION['adminusername']."</span></a>  ";
                    echo "<a href=\"http://www.webmasteroutlet.com/admin/adminlogout.php\" class=\"signup\"><span>LOGOUT</span></a></div>";
                }
            else     if ( !isset($_SESSION['user'])) {
                    require ($_SERVER['DOCUMENT_ROOT']."/users/login.php");
                }


require("search.php");
?>
4

3 に答える 3

0

ジャスティン、あなたは設定していないと思います$_SESSION['user']. これが、vardump 時に NULL になる理由です。

もう 1 つの可能性は、提供されたスクリプトに限定されますが、ユーザー$_SESSION['admin']$_SESSION['user']. この場合、スクリプトを次のように変更する必要があります。

if(isset($_SESSION['user'])) {
    unset($_SESSION['user']);
    echo "user succesfully logged out.";
}elseif(isset($_SESSION['admin'])){
    unset($_SESSION['admin']);
    echo "admin succesfully logged out.";
}else{    
    echo "you are already NOT LOGGED IN right now.";
}   
于 2013-05-14T21:22:17.630 に答える
0

if が設定されている必要があると思います。セッションデータをこのページに渡すようにしてください。これは、設定を解除するように見えます

于 2013-05-14T21:19:21.603 に答える