2014-05-17 80 views
0

我有一個允許用戶「創建主題」的頁面,通過驗證過程打開提交此表單,該過程將主題插入數據庫並重新指向返回到主頁面。但是,如果所有字段都未填寫,我希望我的驗證頁面「添加主題」顯示錯誤消息。以下是我的代碼,請您告訴我需要添加此驗證代碼以通知用戶填寫所有內容字段:如何顯示空字段錯誤消息

// get data that sent from form 
$topic=$_POST['topic']; 
$detail=$_POST['detail']; 
$name=$_POST['name']; 
$email=$_POST['email']; 

$datetime=date("d/m/y h:i:s"); //create date time 





$sql="INSERT INTO $tbl_name(topic, detail, name, email, datetime)VALUES('$topic', '$detail', '$name', '$email', '$datetime')"; 
$result=mysql_query($sql); 




if($result){ 
echo "Successful<BR>"; 
echo "<a href=main_forum.php>View your topic</a>"; 
} 
else { 

echo "ERROR"; 
} 
mysql_close(); 

回答

0

我的建議是創建一個名爲validation的單獨php文件,並在驗證文件中添加一個函數。當然你可以在同一個php文件中創建這個函數。如果您單獨使用include聲明將其放置在您的頁面上。此外,快速回傳到自身會很好,因爲您可以輕鬆訪問已發佈的變量並且已經在頁面上顯示錯誤。否則,你將不得不返回一個get,post或session中的錯誤。如果一切都成功了,你可以在回發後(也許是成功頁面)發佈或重定向,如果錯誤出現,用戶只會看到回發。

include_once("Validation.php"); 

如上所示。

validateNewTopic($topic, $detail, $name, $email, $datetime) 
{ 


} 

然後在裏面你可以使用if語句來檢查條件。如果你想要一個快速的解決方案,你可以創建一個變量來保存所有的錯誤。

$Error = "<p class='errors'">; 

    if ($topic == "") 
    { 
    $Error+="topic is required"; 
    } 


    if ($Error != "<p class='errors'">) 
    { 

     return $Error +"</p>"; 

    } 
else 
{ 
return ""; 
} 

由於您發佈了值,您可以在回發的變量中將它們捕獲以進行驗證。

$topic = $POST['topic']; 

$Error=validateNewTopic($topic); 

if ($Error != "") 
{ 
    ?> 
echo $Error 
<?php 
} 
else { 
//run sql code and show success 
} 

通過將段落標記我們可以只回聲,它會已經與錯誤類段落標記的$錯誤信息裏面。通過使用無序列表以及使用列表項添加錯誤時,可以使它更漂亮。我不確定你對php有多熟悉,但是在任何時候你都可以通過關閉標籤來停止編寫php代碼。 (< php?>並重新打開<?php),如上面的if語句所示。我知道這不是100%清楚,但這是你應該嘗試/研究和實踐的事情,因爲它經常被使用。祝你好運!

0

您可以使用php GET請求將錯誤發送到主頁面,然後顯示它。