簡體   English   中英

登錄頁面和具有相同URL的主頁在facebook中

[英]login page and home page with same url in facebook

Facebook如何管理具有相同域名的用戶的登錄頁面和主頁? 當用戶單擊登錄按鈕時,應該將其重定向到另一個頁面。對於facebook,這似乎沒有發生,因為URL中沒有明顯的混亂

Facebook(與許多其他網站一樣)會跟蹤用戶是否已登錄。它通過在服務器端啟動“會話”,並在請求頁面時讓Web瀏覽器發送cookie來進行此操作。

發生的情況是:您請求www.facebook.com ,服務器看到您尚未登錄,因此顯示要登錄的頁面。 登錄時,它會重定向到同一頁面,但是這次服務器將獲得一個cookie,顯示您已登錄。基於此,它會顯示您的主頁。

當我登錄時,我在$ DOMAIN / login.php上,然后單擊“登錄”,我進入了$ DOMAIN / home.php。

如果希望通過$ _POST變量甚至$ _GET變量控制要實際包含()的頁面,則可以將整個站點放在一個頁面上,因此您所說的是很有可能的。

if(login_vars_are_set){
   try{
     login();
   }
}

if(login_successful){
   include(homepage);
}

那有意義嗎?

假設您加載index.php。

在其中,在屏幕上顯示任何內容(供訪客查看)之前,服務器會詢問:

    if ($visitor_logged_in == 'NO') {

        echo 'Facebook Homepage blah blah blah';

    }

    if ($visitor_logged_in == 'YES') {

        echo 'Thank you for logging into Facebook!';

    }

現在,最重要的是一個$ _GET / $ _ POST請求,該請求查看是否提交了任何表單數據。 如果那是您的用戶名/密碼,並且經過驗證是正確的,則index.php頁將為$ visitor_logged_in變量分配一個值。 如果表單數據為空白或無效,則它將獲得“ NO”值;如果是真實用戶,則將獲得“ YES”。

這是一件非常簡單的事情,很多網頁的行為都像這樣。 一方面,對於每種類型的操作來說,擁有少量的PHP頁面有時比單獨的頁面更容易(而不是使用多個頁面,而是使用多個IF語句)。 另一件事是更簡單/更容易學習/管理代碼。 如果您知道頁面的所有“內容”都在少數頁面上,則可以更輕松地進行更新和故障排除。

我是自我引用頁面的忠實擁護者,尤其是在涉及登錄/注銷類型行為時。

暫無
暫無

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

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