2012-06-04 41 views
0

目前,我正在開發一個使用標準PHP的應用程序。因此,從表單中調用了各種功能。一些例子包括註冊,登錄,註銷等。訪問PHP函數的替代方案

而不是爲每個功能創建一個單獨的文件,我在includes文件夾中使用phpscripts.php文件。爲了從html輸入執行一個函數,我使用?action=functionName來填充URL。在腳本文件中,我使用開關/事件樹來執行基於S_GET['action']變量的正確功能。

有沒有更好的方法來實現PHP函數的HTML調用?

+0

我可以只打你的網址?action = deleteALL或其他猜測 – 2012-06-04 19:59:41

+0

考慮學習使用[PHP框架](http://www.phpframeworks.com/)。 – meagar

+0

@Dagon,no。這是行不通的,因爲所有其他功能都依賴於POST值。 GET僅用於將按鈕操作指向功能。 – Jason

回答

1

不,這是將HTML表單與PHP腳本對接的正確方法。其他選擇將包括使用URL重寫(將/actions/functionname/param轉換爲?action=functionname&param=x),但基本原則保持不變。

1

爲了您的理智......考慮讓一個腳本處理您的上述所有請求。像/process_action.php。您可以處理統一的操作,例如:檢查以確保該功能存在,檢查登錄用戶,連接到數據庫,創建共享資源等...

如果您使用的是Apache,這些網址很適合使用mod重寫。您可以通過使用類似下面放置在您的網站.htaccess文件轉

/actions/function/?restofquery 

/process_action.php?action=function&restofquery 

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^(.*)$ 
RewriteRule ^/actions/([-_a-zA-Z0-9]+)/?$ /process_action.php?action=$1&%1 [L] 

作爲一個側面說明,你的問題聽起來好像你在遊覽model/view/controller (MVC)的邊緣。有幾個偉大的框架,但不要讓這阻止你滾動你自己的。通過下面的練習:)

+0

我對Java MVC和framweworks有着豐富的經驗,特別是Grails。問題是,這個項目有一個最小的依賴性要求,或者我會開始在心跳中集成Zend或CodeIgniter。 – Jason