簡體   English   中英

頁面無法識別會話

[英]Page Does Not Recognize SESSION

我遇到了我無法解決的問題。 我已經在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");
?>

嘗試這個:

<?php
session_start();

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

echo "User.".$_SESSION['user']." you are being logged out";
unset($_SESSION['user']);

    header("Refresh:5; url=http://www.webmasteroutlet.com");


} else {    
    echo "You are not logged or var SESSION doesnt exist";
}
require_once("../footer.php");
?>

如果仍然無法解決問題,請嘗試刪除require_once行(用於調試)。

我認為您需要設置if,並確保將會話數據傳遞到此頁面,就像您正在取消設置

賈斯汀,我想您沒有設置$_SESSION['user'] 這就是為什么在vardump時得到NULL的原因。

盡管我僅限於您提供的腳本,但另一種可能性是,您使一個人可以通過$_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.";
}   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM