2011-04-28 4 views
1

아이디어가 있습니다 .... ... 나는 index.php를 가지고 있습니다 ... ... 응용 프로그램은 페이 스북 벽처럼 한 페이지 만 가지고 있습니다. 사용자가 로그인하면 볼 수 있습니다. 그들의 "벽",하지만 그들이 기록되지 않은 경우, 그들은 등록 페이지를 참조하십시오 .... ....로그인 전후에 애플리케이션 로직을 분리하는 방법은 무엇입니까?

내가 index.php에 이러한 로그인을해야합니까? 또는 두 개의 index.php를 분리해야합니다 ... 하나는 logined_index.php이고 notLogined_index.php입니까 ??

또한 index.php에 로그인하지 않은 사람을 어떻게 방지 할 수 있습니까? 고맙습니다.

답변

1

에 대한

는 별도의 파일에 대한 필요가 없습니다. 다음과 같은 것을 사용할 수 있습니다 :

<?php 
    session_start(); 
    if (!isset($_SESSION['uid']) | $_SESSION['uid']=='') $_SESSION['uid']=0; 

    if($_SESSION['uid']!=0) { 
     if (/* user logs out */) { 
      session_destroy(); 
      /* show register/login form */ 
     } 
     else { 
      /* main page code goes here */ 
     } 
    } 
    else { 
     if (/* register details entered */) { 
      if (/* register details valid */) { 
       /* register the user and display it all went successful */ 
      } 
      else { 
       /* wrong register info - display error */ 
      } 
     } 
     else if (/* login details enetered */) { 
       if (/* user exists and login correct */) { 
       $_SESSION['uid'] = /* set the id of the logged user */; 
       /* log user in and redirect to main page */ 
      } 
         else { 
       /* wrong login info - display error */ 
      } 
     } 
     else { 
      /* show register/login form */ 
     } 
    } 
?> 

이것은 간단한 코드 레이아웃에 불과합니다.

0

난 당신이 예를 들어, 다음과 같이 로그인이 필요한 모든 페이지가 별도의 파일에 로그인 페이지를 넣어 재 제안 :

<?php 
// at the very beginning of index.php 
if($not_logged_in){ 
    // redirect user to a login page 
    header('Location: /login_please.php?return_to='.urlencode($_SERVER['REQUEST_URI'])); 
    die(); 
} 
?> 
0

당신은 어떤 세션을 이해해야합니다.

페이지 앱인 경우 index.php를 컨트롤러로 사용하고 로그인 및 등록을 위해 별도의 템플릿 또는보기를 만들 수 있습니다.

로그인없이 해당 페이지에 액세스 할 수없는 사용자가 요청한 사항을 확인하고 세션을 확인한 후 등록 또는 로그인보기로 리디렉션하십시오. 이미 로그인 한 경우 벽이나 보호 된 페이지로 리디렉션합니다. 응용 프로그램이 작은 남아있는 경우 예를 들어

session_start() 
if(isset($_SESSION['user_id'])) 
{ 
    //user is logged in and redirect them to main page 
} 
else 
{ 
    //ask him to register or log in 
} 
관련 문제