2013-04-28 38 views
0

所以我建立了一個由2頁組成的php系統。這些功能是:我如何建立一個處理引擎

頁1:基本的形式,用於將輸入數據,POST第2頁

第2頁:從第1頁,過程一切加載輸入數據,並進行適當的計算,然後取所得數據並使用它來確定主模板上覆蓋的文件名。

它工作正常,我只是想知道是否有可能在2頁之間添加一個「中間人」,如果你願意,處理所有內容的引擎,而不是第2頁必須這樣做,那麼它會自動POST到頁面2完成後,它會加載結果並使用它們,但是,如果有錯誤,它將重新加載頁面1.我只想嘗試讓事情更有條理和整齊。

謝謝你們

+1

中間商可能真的很煩人的用戶。處理「重定向」服務器端。或者你的問題是如何構建/使用模板引擎? – Ryan 2013-04-28 13:08:43

+0

那個人,重定向將是客戶端,但頁面甚至不會在那裏很長時間,可能像一秒鐘,考慮它只需要通過約200行邏輯腳本來確定幾件事情的結果 – amartin94 2013-04-28 13:11:32

+0

@ amartin94只要你開始在客戶端和服務器之間傳輸數據,你就會有_no_想法能花多長時間 – 2013-04-28 13:12:51

回答

2

將「業務邏輯」從「應用程序邏輯」和「表示層」分開 - 雖然在2頁的應用程序中,這可能不是優先級,但這通常是一個好主意。

有很多設計來完成這個;最常被接受的是「模型/視圖/控制器」。有很多在PHP中實現MVC的PHP框架;再次,可能是一個2頁的應用程序矯枉過正,但值得研究,如果你希望增長超過2頁。

解決您的具體問題的方式:

  • 1個員額formhandler.php。
  • Formhandler.php驗證數據並執行業務邏輯。 如果數據有效,formhandler將數據放入會話並使用header函數將瀏覽器重定向到第2頁;第2頁從報頭獲取數據並顯示
  • 如果數據是無效的,formhalder把錯誤消息和數據到會話,並使用header到回重定向到第1

Formhandler.php應該沒有HTML嵌入在它 - 它只是執行業務邏輯。第1頁和第2頁應該沒有業務邏輯,但可能有一些應用程序邏輯(例如顯示第1頁的錯誤消息)。

+0

感謝的人,肯定會考慮吧:) – amartin94 2013-04-28 13:34:44

1

使用header在「中間人」的劇本 - 但如果你已經在「中間人」的劇本做了一些輸出,打印/回聲,它不會工作:

header("Location: middlemanscript.php?".$yourVars); 
+0

thx,minitech :)忘記了標籤。 .. – Michael 2013-04-28 13:09:56

+0

謝謝!我想到了頭,但不知道你可以通過藏漢:)傳遞變量 沒有,中間商/發動機只是用來運行一個邏輯系統我寫來確定的幾件事情的結果通過到第二頁,沒有必要打印:) – amartin94 2013-04-28 13:13:13

+0

由於頭-方法的參數是一個字符串,你可以建立起來這樣的 - 但我不知道是否有任何「不」 S與此有關。 – Michael 2013-04-28 13:18:13

相關問題