2016-07-29 131 views
0

這聽起來像一個愚蠢的問題,所以我前面道歉。表單驗證提交預覽(PHP)

我有一個PHP表單,其動作發佈到自身,以便我可以做一些驗證,以確保文本框,一些複選框和一對夫婦按鈕被選中。在確認沒有表單錯誤之後,我需要讓用戶在讓他們提交信息到數據庫之前預覽他們輸入的內容。

對於預覽表單提交的詳細信息,邏輯page1.php將有<form action="page2.php">和page2.php將允許用戶預覽他們提交的內容。

但是對於表單驗證,邏輯上,表單應該提交給自己,以便它可以驗證在同一頁上輸入的所有必填字段。

那麼,有沒有一種方法可以在表單通過提交給自己進行驗證後引導用戶進入「下一頁」,以便他們可以預覽信息?


注: 我改寫傳統的ASP形式,做到這一點:

if errorMsg = "" then 
    response.redirect "verify.asp" 
else 
    session("errorMsg") = errorMsg 
    response.redirect "default.asp" 
end if 

我想在PHP中,類似的有條件的「其他」部分的情況下,會因爲不必要的它已經發布到自身,只有當錯誤消息數組爲空時它才應該重定向到驗證頁面。

回答

1

您可以使用header執行重定向:

if(empty($errorMsg)) { 
    header("Location: verify.php"); 
    exit; 
} 
+0

其實,在進一步的檢查,這是不行的。 PHP文檔說,在發送任何輸出之前,必須使用頭函數**。我相當肯定我的代碼是在打開'''後出現的,這會導致錯誤。 – Tiffany

+0

但這確實給了我一個我需要看的地方的想法。我發現沒有php重定向選項,並且推薦的方向是使用javascript和meta標籤,如果javascript被禁用,meta標籤將會佔用。 – Tiffany

+0

@蒂凡尼在輸出任何html之前,不應該有表單處理無法完成的原因。更一般地說,以這種方式將頁面張貼到自己可能導致其他問題(例如,如果用戶使用瀏覽器的後退按鈕退回到頁面上,則瀏覽器將提示用戶重新發布/重新發送表格)。除了使用已建立的框架發佈到單獨的文件來處理表單並執行重定向之外,這將是更好的選擇。 –

0

用標誌海因茨的答案和一些google搜索,我想通了,做與JavaScript的組合和meta標籤的最佳方式。當javascript被禁用時,元標記將會被考慮。

+0

元刷新和JavaScript重定向是服務器發起的重定向的一個可憐的替代品,因爲瀏覽器必須在重定向到下一個頁面之前開始接收/解析頁面。如果這是您的意圖,那麼引用的URL修改實際上並不會導航到其他頁面。 AJAX/XHR表單處理完全是另一種動物。 –