登录页面和主页在Facebook中使用相同的URL

时间:2011-10-23 18:08:34

标签: php mysql html facebook

facebook如何设置具有相同域名的用户的登录页面和主页? 当用户点击登录按钮时,他应该被重定向到另一个页面。在facebook的情况下似乎没有发生这种情况,因为URL中没有明显的chane

3 个答案:

答案 0 :(得分:1)

Facebook(与许多其他网站一样)会跟踪用户是否已登录。 它通过在服务器端启动“会话”,并在请求页面时让Web浏览器发送cookie来实现此目的。

会发生什么: 您请求www.facebook.com,服务器发现您没有登录,因此它显示了要登录的页面。当您登录时,它会重定向到同一页面,但这次服务器会获得一个显示您已登录的cookie。基于此,它会显示您的主页。

答案 1 :(得分:1)

当我去登录时,我在$ DOMAIN / login.php上,然后我点击登录我去$ DOMAIN / home.php

如果你想通过$ _POST vars甚至是$ _GET vars控制实际包含()的页面,你可以将整个网站放在一个页面上,所以你所说的很有可能。

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

if(login_successful){
   include(homepage);
}

这有意义吗?

答案 2 :(得分:1)

假设您加载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”,如果是真实用户,则为“是”。

这是一件非常简单的事情,很多很多网页都是这样的。一方面,对于每种类型的操作,有时几个PHP页面比单独页面更容易(而不是使用多个页面,只需使用多个IF语句)。另一件事是更简单/更容易学习/管理代码。如果您知道页面上的所有页面的“内容”都在少数几个页面上,那么更新它们就更容易使用并进行故障排除。

我非常喜欢自引用页面,特别是涉及登录/注销类型行为时。