只是一個簡單的問題。我是否正確使用PHP會話來在表單之間保存數據?
我有一個表單捕獲一些數據,驗證它,然後發佈到同一網站上的另一個頁面。如果沒有錯誤,我使用header()來重定向,但顯然數據不會在帖子中發送。
使用會話在兩頁之間保持數據是否正確?
謝謝你們。
只是一個簡單的問題。我是否正確使用PHP會話來在表單之間保存數據?
我有一個表單捕獲一些數據,驗證它,然後發佈到同一網站上的另一個頁面。如果沒有錯誤,我使用header()來重定向,但顯然數據不會在帖子中發送。
使用會話在兩頁之間保持數據是否正確?
謝謝你們。
如果你只需要在第二頁上的數據,如果該數據不敏感,你還不如通過在報頭中的數據()。
$url = "www.example.com?variable=value&id=something";
I.e. header('Location: $url');
這些類型的「flash消息」很好,並且是一種防止用戶能夠重新加載頁面並重新提交表單的好方法,如果您擔心這一點。我會提醒你在顯示消息後取消會話增值。
是的,這是正確的做法。
但是,根據情況,還有其他替代方法,例如隱藏變量,iframe等。如果您能解釋整個情況,根據數據的性質,我可以爲您提供更準確的答案。
您可以將數據存儲在服務器端(會話)或客戶端(Cookie)上。您選擇什麼方式取決於數據類型和安全問題。
您也可以通過PHP直接在新的形式嵌件發佈的數據,但不保存 - 但是如果你通過頭重定向
是的,你可以這樣做是行不通的,但會更加安全,加在與DUMMY或額外的領域的數據庫。通過這個如果你需要丟棄,你可以丟棄虛擬記錄。但是你需要有時間戳,所以你不要刪除最近添加和正在處理的記錄。
你也可以創建cron作業以清空表
是的。這是完全可以接受的。 – Rawkode 2013-04-05 12:00:20
唯一的問題是,如果您遇到需要多臺計算機爲您的應用提供服務的情況。然後,你必須與會話的問題......,並有移動到像高速緩存或DB – 2013-04-05 12:00:20
我認爲處理負載平衡器和多臺服務器共享數據源的持久化數據是位從最初的問題跳躍,而技術上仍然有效 - 我想。 – Rawkode 2013-04-05 12:01:35