2011-10-23 4 views
0

페이스 북은 어떻게 동일한 도메인 이름을 가진 사용자의 로그인 페이지와 홈 페이지를 관리 했습니까? 사용자가 로그인 버튼을 클릭하면 다른 페이지로 리디렉션되어야합니다. 페이스 북의 경우에는 페이스 북의 경우에는 발생하지 않는 것처럼 보입니다.페이스 북에서 같은 URL을 가진 로그인 페이지와 홈 페이지

+1

통지 전에 사용자를 로그인 페이지에서 홈 페이지로 리디렉션 할 가능성이 있습니다. D –

답변

1

Facebook은 사용자가 로그인했는지 여부를 추적합니다. 서버 측에서 '세션'을 시작하고 페이지 요청시 웹 브라우저에서 쿠키를 보내도록합니다.

어떤 일이 발생합니까 : www.facebook.com을 요청하면 서버는 로그인하지 않은 것을보고 로그인 할 페이지를 표시합니다. 로그인하면 동일한 페이지로 리디렉션되지만 이번에는 로그인 한 서버가 쿠키를 가져옵니다.이 정보를 기반으로 홈페이지가 표시됩니다.

1

나는 $ DOMAIN/login.php 오전 로그인 가서 내가 $ DOMAIN로 이동 로그인 명중 갔다/home.php

방금하여 한 페이지에 전체 사이트를 원한다면 당신은 할 수 $ _POST 변수 또는 $ _GET 변수를 통해 실제로 어떤 페이지를 포함할지 제어합니다(). 그래서 당신이 말하는 것은 가능합니다. 이해

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

if(login_successful){ 
    include(homepage); 
} 

합니까?

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'값을 가지며, 실제 사용자 인 경우 'YES'값을 ​​얻습니다.

매우 간단하고 많은 웹 페이지가 이와 같이 작동합니다. 한 가지 경우에는 여러 페이지를 사용하는 대신 여러 개의 IF 문을 사용하는 대신 모든 유형의 작업에 대해 별도의 페이지보다 소수의 PHP 페이지를 갖는 것이 더 쉽습니다. 또 다른 일은 단지 코드를 배우고 관리하기가 더 쉽습니다. 페이지의 "용기 (guts)"가 소수의 페이지에 있다는 것을 안다면, 작업을 훨씬 쉽게 업데이트하고 문제를 해결할 수 있습니다.

특히 로그인/로그 아웃 유형 동작과 관련된 경우 자체 참조 페이지를 크게 좋아합니다.

관련 문제