2012-04-11 115 views
2

我試圖創建一個利用PHP作爲齒輪背後驅動力的網站。站點背後的想法(通常)要求爲每個用戶提供創建他們自己的配置文件的選項(目前考慮爲每個用戶創建一個目錄)。PHP目錄結構混亂

我一直在做相當多的研究,以便以最好的方式設置這個應用程序。但是在創建目錄結構時,我受到了極大的困惑。我正在考慮下載一個框架助手(CodeIgniter),它可能會幫助我進行冒險,但我寧願先得到其他人的意見。

目前我的所有文件和內容都在我的public_html文件夾中,而且我知道這不是理想的設置。但我不知道如何去創建一個替代結構。我不知道在哪裏存儲各種模板(header.php,footer.php等)以及如何/在哪裏調用它們。

我想創建頁面來列出「關於」,「聯繫頁面」和其他內容,但不知道這些頁面應該放置在哪裏?我是否將這些頁面的內容保存在public_html目錄中,並簡單地包含來自各個子文件夾的模板?

關於config.php文件:我試圖在單個文件中提供與MySQL連接有關的所有必要信息,以及其他必要的信息,以便在網站內的每個頁面的開始處包含這些信息。

想法?我對雲計算相當陌生,如此簡單和基本的響應將不勝感激!

回答

1

您正在考慮這個錯誤。你不需要每個用戶的目錄。您可以使用GET params讓一個腳本(例如profile.php)爲依賴傳遞給它的數據的用戶提取適當的配置文件。例如,profile.php?userid=5212會爲用戶5212(在這種情況下,$_GET['userid']將包含用戶的ID)提取配置文件。傳遞任何東西都不會輕易地默認爲爲當前登錄的用戶提取配置文件。

你也可以使用mod_rewrite使http://www.yoursitehere.com/profile/5212/可以做同樣的事情(看看路線在大多數PHP框架)

你的目錄結構應該適合你。如果網站是很簡單的,你可以逃脫像剛纔

public_html/ 
    css/ 
    includes/ 
    images/ 
    js/ 

數據庫配置簡單的東西可以住在public_html/includes/,你可以將它包括需要一個數據庫連接的任何頁面上。您的關於和聯繫頁面可以是位於public_html/的實際文件,以保持簡單。再次,這些只是建議。你的目錄結構應該是你需要的。

+0

這聽起來不錯。肯定會讓我很困惑。你還會推薦使用框架,還是根據MVC標準來組織網站? (我不完全清楚MVC模型的功能是什麼)。 至於config.php文件,我不應該關心通過讓別人訪問文件內容(使用腳本中存儲的MySQL用戶和密碼)來破壞安全性的可能性嗎? – asgaines 2012-04-11 19:27:08

+0

只要它是一個PHP文件,那麼它不能從網上訪問(因爲PHP腳本被解釋,而不是打印)。至於框架,這是你的決定。但是,在你的技能水平上,它可能會增加你的困惑。例如,大多數PHP框架使用MVC結構,因此您只需使用Zend Framework或CakePHP即可使用MVC。 – Crashspeeder 2012-04-11 19:36:02

0

將所有內容存儲在對您有意義的結構中。像這樣的東西應該工作:

的public_html

- 包括

-images

-CSS

-blog

等等......

有關配置文件,你可以存儲在public_html目錄或在includes目錄中

+0

我應該如何去和你的頁眉和頁腳即包括各種文件?我會使用一種方法,將文檔根存儲在config.php文件中存儲的變量中,然後使用此變量與目錄的各個級別進行交互? 例如(在config.php文件中): $ doc_root = $ _SERVER ['DOCUMENT_ROOT']; – asgaines 2012-04-11 19:32:05

+0

是的,這將工作。這是處理它的一種方式:'require_once($ _ SERVER ['DOCUMENT_ROOT']。'/inc/header.php');' – 2012-04-11 20:03:07

+0

該代碼位於每個文件的頂部。它包含數據庫連接,''標籤等...... – 2012-04-11 20:04:10

0

您可能會考慮使用PHP Web框架,如Symfony。這將有助於您掌握大量的基礎知識,以便您可以專注於產品功能。

0

對於用戶配置文件,將所有信息存儲在數據庫中,並將用戶標識作爲字段存儲。 當用戶登錄時,通過查詢用戶ID來運行查詢來選擇所有信息。

至於文件結構,你可以使用:

 
    public html 
    includes 
     header.html 
     footer.html 
     config.php 
    classes 
    pages (stores other pages besides index.php here, contact, about etc.) 
    css 
    JS 
    index.php/html 
和的public_html文件夾之外我有我的mysqli.php文件。

要在您的index.php文件,你會簡單地創建這些頭文件(在包括文件夾或任何你選擇)與類似以下內容的config.php文件:

require_once($server['document_root']."/classes/filename.php"); // include needed files and mysqli connection here as well 

你也可以如果需要,還可以在配置文件中設置自定義錯誤處理程序。

在你的index.php文件,你會再調用配置文件(這將自動包括您在配置文件中指定,以及任何文件)

include('/includes/header.html'); 
include('/includes/config.php'); 
<!--ENTER PAGE CONTENT HERE--> 
include('/includes/footer.html');