簡體   English   中英

致命錯誤:調用未定義函數logging_in()

[英]Fatal error: Call to undefined function logged_in()

我做了一個登錄腳本,當我想檢查用戶何時登錄時,我使用了函數logged_in(),該函數包括:

function logged_in()
{
    if(isset($_SESSION['id']))
    {
        return true;
    }
    else 
    {
        return false;
    }
}

會話設置在這里:

else if ($login === true)
        {
            echo 'Login success.';
            include 'include/aside.php';
            include 'include/footer.php';
            $userid = id_from_username($username);
            $usernameforsession = username_from_id($userid);
            $_SESSION['id'] = $userid;
            $_SESSION['username'] = $usernameforsession;
            header( "refresh:2;url=index.php");
            exit();
        }

這是我在'index.php'中使用它的一個示例:

if(logged_in() === true)
{
    echo 'Site content when user is logged in.';
} else if(logged_in() === false)
{
    include 'include/widgets/register.php'; //registration form
}

是的,該功能包含在每個頁面中。 我做了這個功能,所以它應該起作用...為什么它不起作用?

替換此代碼:

if(logged_in() === true)

使用此代碼:

if(isset($_SESSION['id']))

這消除了所有中間商。

盡管您列出了很多代碼,但是您確定要包含session_start(); 在每個頁面的頂部? 您需要先調用此函數,然后再對會話變量進行任何操作。

第二件事是錯誤消息顯示該函數未定義-您確定是在頁面的源代碼中包含它還是在每個頁面上定義該函數的代碼中包含它?

如果您將其保存在名為“ functs.php”的文件中,則需要在將要調用該函數的每個頁面中include()include()

如果您完全確定聲明包含在每個頁面中,那么我建議您檢查一下以確保函數未在對象內部聲明為方法。

暫無
暫無

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

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