2011-12-17 117 views
0
每個表單創建不同的頁面

如果我切換的形式,我想如果我使用每種形式不同的頁面使用上的index.php

switch($_GET["action"]) { 
case "login": include "login.php";break; //loads login form 
case "register": include "register.php";break; //loads register form 
} 

交換形式,我需要在每個頁面中包含頁眉,頁腳和其他內容。

進行登錄,用戶可以輸入:

index.php?action="login" 

login.php 

哪一個更常見和實用?

+0

我更喜歡'如果(file_exists( 「{$ _ GET [ '動作']} PHP。」))包括 「{$ _GET [ '動作']}的php。」;其他包括「如default.php」;' - 創建太多的安全代碼 - 雜亂 – DaveRandom 2011-12-17 18:52:10

+2

@DaveRandom」 ./{$_ GET- >名稱 - > in_array( 「行動」, 「登錄,登記」)} PHP「);'。 - 至於你的實際問題:這是一個偏好問題。調度程序腳本更常見,而且對內部實現的揭示較少。但是,網址重寫也應該美化。 – 2011-12-17 18:53:27

+0

的,我只想'包括(用適當的消毒和檢查的權限,當然... – mario 2011-12-17 18:58:55

回答

0

如果用前一種選擇去,你需要考慮如果用戶訪問這些頁面會發生什麼,直接(例如login.php中):是指那些包含的文件通過瀏覽器訪問?如果是的話,你可能會考慮把他們的Web目錄之外並在自己的文件夾中。如果這是不可能的,你可以實現在login.php中/ register.php腳本一些檢查:

if (__FILE__ === $_SERVER['SCRIPT_FILENAME']) { 
    // user visited script directly, rather than included 
} 

另一種選擇是較常用的(尤其是如果您的所有文件坐在Web根目錄),前提是包括頁眉,頁腳,配置腳本等所需的邏輯是保持簡單,否則你將不得不改變它在多個位置。

摘要:我建議每個頁面上添加頁眉和頁腳腳本簡單include電話,除非你可以把包含文件的某處Web根目錄之外。

0

這可能是最常見的做法有處理每種類型的表格後的一個單獨的函數。這些你都可以在一個單一的PHP文件或多個文件存儲,並在您的網頁。沒問題,但沒有太多常見做法有選擇地包含各種PHP腳本。

爲了您的佈局有各種各樣的解決方案,可能每一個都有自己的優點和缺點,這取決於你的網站或應用程序,但它是很難說什麼比從未最好等有重複的代碼。