2011-08-04 157 views
-1

我不知道這是什麼好方法。我有一個註冊表單,如果提交按鈕被設置,它將被髮送到一個php數據處理程序,如果它包含一個錯誤,它將被重定向回使用頭函數的註冊表單。我想顯示一個成功頁面,告訴用戶註冊成功。我的數據處理程序代碼如下所示。註冊成功後頁面

if(isset(submit)) 
{ 
//input validation 
if(error found) 
{ 
//redirect back to the reg form with error msgs 
} 
else 
{ 
//register user to database 
} 
} 

我是否需要爲成功消息製作一個專用頁面?如果我將成功信息發送到註冊表的頂部,它看起來很難看。我使用會話btw。

回答

0

你認爲只是使用JavaScript彈出說它是成功的嗎?你也可以考慮使用一些CSS來設計它 - 也許有一個綠色的背景,一個綠色的邊框,一張綠色的大檢查圖片或類似的東西。

0

是的,創建一個成功頁面是一個好主意。它提供了很好的反饋,表明註冊是成功的。您還可以添加歡迎消息和用戶可能需要的任何信息。

+0

但是,我怎麼能讓網頁無法通過直接url訪問。 – user874737

+0

您可以使用該會話。註冊成功後,設置一些會話變量。例如,'$ _SESSION ['registration_success'] = true;'然後重定向到'/ success'頁面。在這個頁面中,檢查是否設置了$ _SESSION ['registration_success']。如果是,則顯示成功頁面,如果沒有,則表示用戶試圖直接訪問該頁面。在這種情況下,重定向到主頁或其他地方。一旦完成,請確保取消設置$ _SESSION ['registration_success']。 –

+0

謝謝。爲了防止我的成功頁面直接url,我創建了一個擁有boleean值的會話變量。如果會話變量不正確,那麼該頁面將被重定向到特定頁面。告訴我這是否合適,但我確實認爲這是避免直接聯繫的正確方法。編輯: 我們幾乎同時發送了一條消息。我想我是對的。非常感謝您 – user874737

0

對於註冊和其他表單提交頁面,問題不在於直接訪問成功頁面。成功頁面可以檢查任何會話變量並在不存在的情況下重定向。或者它可以再次顯示成功消息。爲什麼不?

真正的問題是,您不希望發佈表單數據兩次,如果您沒有任何重定向,可能會發生這種情況。如果結果頁面在帖子後顯示,並且用戶刷新頁面,則數據會再次發佈。

要解決這個問題,人們發明了Post/Redirect/Get模式。 它基本上規定您將數據發佈到一個url,並在響應中添加重定向。重定向進入成功頁面,其中獲得任何信息(通過在URL中傳遞一個id,或通過閱讀會話,但無論如何沒有任何發佈數據)。這樣,發佈的頁面不會顯示在歷史記錄中。當用戶發佈表單時,他會回到表單發佈前的時間,而不是發佈到發佈後的行爲本身。

+0

@ user874737你的問題解決了嗎? – GolezTrol