2011-04-28 74 views
1

這裏有個想法....我有一個 index.php ....這個應用程序只有一個頁面,就像facebook牆一樣,如果用戶登錄,他們可以看到他們的「牆」,但如果他們沒有登錄,他們看到一個註冊頁...... ....如何在登錄前後分離應用程序邏輯?

我應該把所有這些登錄在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 
}