2012-07-22 71 views
2

很明顯,對於任何合理大小的網站,使用PHP構建模塊包含很多優點,所以我選擇使用includes動態創建頁面內容。我是反對包括頁眉和頁腳的想法,所以我做了這樣的倒數(的index.php):如何爲PHP包含頁面開發大型白名單?

if(isset($_GET['page'])) 
    { 
     $whitelist = array("contact","about","access", etc.); 
     if(in_array($_GET['page'], $whitelist)) 
     { 
      include($_GET['page'].".php"); 
     } 

    } 
    else 
    { 
     include('home.php'); 
    } 

有人反對這種基於安全理由(雖然他們永不放棄的替代),但我覺得這是一個很好的解決方案。我的問題是,當我的網站有幾百甚至幾千頁時會發生什麼?我是否會一直向白名單陣列添加變量,直到它變得巨大,還是有更好的方法?

回答

1

當您的網站擁有數百或數千個網頁時,它們都是唯一的,您可能會將它們存儲在數據庫中。和他們的網址slu too也(contact,about等)。所以如果獲得價值是一個有效的slu((在表中存在),在這裏你去。

+0

謝謝您,因爲數據庫旨在搜索大量數據。 – 2012-07-22 21:36:37

0

使用數據庫將頁面白名單。這樣你就可以一次獲得配置設置和權限。

+0

謝謝你們,恥辱我不能upvote的答案呢。 – 2012-07-22 21:40:13

0

根據我的經驗,白名單頁面將它們包含在php中並不是一個好習慣。因爲添加新頁面或修改舊頁面名稱需要更改此列表。我認爲最好使用另一種形式的地址驗證。 使用類似像MVC或驗證地址基於模式或可能使用重寫Apache是​​良好的做法。無論如何,這取決於你!

+0

有趣的想法,謝謝。 – 2012-07-22 23:52:05