我一直在考慮的努力一個Zend框架實例有太大的修改遺留代碼嫁給古董遺留代碼不好玩的任務。其中一部分是一個多頁表單,它接收一堆數據,驗證數據,處理數據,然後通過電子郵件發送給網站所有者。我的工作是將這些數據存入ZF,我可以將其自動處理成數據庫。我無法使用POST。我寧願避免使用自動提交表單,因爲我不認爲我應該使用Javascript。得到將是痛苦笨拙。如何讓Zend Framework消除現有會話?
我的希望是使用Session來獲取數據從現有形式的處理器,進入ZF。數據已經在表單處理器的Session中。起初,我認爲這將是一個簡單的問題,重定向到我的ZF實例(它存在於主網站的子目錄中)。這是同一個域名,應該是同一個會話,對吧?
好,東西長約ZF處理其會議的方式使舊的會話數據是完全徹底殲滅。它剛剛消失。
因此,沒有ZF處理它的Session,它抹了現有會話或者這是一個僥倖的這樣一種方式?如果這不是僥倖,我怎麼能繞過它?如果是這樣,可能會導致它/我該如何解決它?
編輯
我使用Zend_Session_SaveHandler_DbTable數據庫備份會話。這在application.ini
初始化。這裏是初始化代碼:
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "Sessions"
resources.session.saveHandler.options.primary = "sessionID"
resources.session.saveHandler.options.modifiedColumn = "lastModifiedTime"
resources.session.saveHandler.options.dataColumn = "data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"
當我使用的會話,我已經打過電話session_start()
,而是創建了一個錯誤。可能是因爲保存處理程序代碼已經初始化了會話,或者稍後會這樣做。如果我試圖直接訪問$_SESSION
變量,那麼可以指示我試圖訪問未設置的變量。如果我先創建一個Zend_Session_Namespace
,然後嘗試訪問$_SESSION
,那麼我將面臨空白會話。
不一定是相同的會話沒有。這取決於你如何使用Zend_Session。你在使用命名空間(Zend_Session_Namespace)嗎?自定義或自動生成的ID?這將有助於看到一些代碼。 – netcoder 2011-03-23 20:47:58
如果你可以檢查,數據只是從ZF應用程序不可見或是從兩者中刪除? – Phil 2011-03-23 21:38:51
@netcoder被編輯爲按要求添加更多信息。 – 2011-03-24 14:04:28