2012-04-11 99 views
0

我已經爲網站創建了登錄表單和註冊表單。將SQL分配給會話或變量的錯誤?

將表單發佈爲checklogin.php和checksign.php進行驗證,但是當它發現任何錯誤時,它會在單獨的文件中顯示它們。

login

以下是以下驗證語句

if (!$_POST['fullname'] | !$_POST['myusername'] | !$_POST['mypassword'] | !$_POST['remypassword']) { 

     die('You did not complete all of the required fields'); 
    } 

Error

我的問題是錯誤消息:我如何讓他們在同一個頁面?例如;在表單旁邊的標籤中。謝謝,任何提示都會有很大的幫助。這是網站即時通autosales

回答

2

通過構造你的代碼,以便確認的訂單可以在最終處理前來,如果不是,顯示錶單頁面再次

if($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 
    $valid = false; 
    // perform input validations here 
    if(dosomething()) 
    { 
    $valid = true; 
    } 

    // if valid, perform processing here, and either show success page (or redirect) 
    if($valid === true) 
    { 
    // SQL junk here 
    include('success.php'); 
    exit(); 
    } 
} 

// render original form after this line 
+1

只是要清楚,你可能會想創建某種數據結構(如assoc數組)來存儲每個字段的錯誤。然後在顯示每個標籤旁邊的表單的部分中,您將檢查數組是否存在錯誤,然後將它們打印到要與表單內聯的位置。 – prodigitalson 2012-04-11 03:19:59

0

您的表單將數據發佈到checklogin.php,而不是發佈到index.php的數據,並處理該頁面上的驗證。

<form class="clearfix" action="checklogin.php" method="post"> 
0

在過去,我已經使用了使用會話存儲錯誤的自定義錯誤處理程序,我建議。

使用會話(在自定義錯誤處理程序中)存儲錯誤的優點是,它們可以輕鬆地讀取並顯示在您擁有的任何視圖頁中。例如,如果您想在類中拋出錯誤,則只要您選擇將它們保存到會話中,就可以顯示它們。所以,雖然對於這個特定的問題,你可以簡單地將所有的代碼移動到一個PHP文件中,但這可能不是最好的解決方案。

更不用說,如果您的「檢查登錄」重定向回登錄頁面,顯然所有變量的值將不會持續。