繁体   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