在我的網站上我有很多表單和字段,我有一個完美的工作系統,但真的很痛苦,並且能夠正常運行。通過驗證創建一個完美的表格
這就是我的系統所做的,一旦你發送表單,所有的信息被髮送到擁有所有數據並驗證它的類。它也存儲這樣的字段的值$_SESSION['userUpdate']['firstName'][1] = $firstName;
如果有錯誤,它會創建一個像這樣的會話變量$_SESSION['userUpdate']['firstName'][0] = 1;
1表示該字段爲空。如果沒有錯誤,則會話變量將爲0.
如果在驗證過程中沒有發現錯誤,則數據將發送到數據庫。
此後表單頁面重新加載:
header('HTTP/1.1 303 See Other');
header('Location: '.curPageURL().'');
我使用,使重新加載頁面時,你不能重新發送數據。這就是我使用所有這些會話變量的原因。
然後用很多它/ else if/else我檢查會話變量和輸出錯誤的值,並填寫與先前輸入的數據的形式。
讓我告訴你一個名字字段的例子。
這是HTML代碼:
<label for="firstName" class="block">First Name</label>
<span>Your first name goes here.</span><?php echo $text_first_name ?>
<input type="text" id="firstName" class="mediaText" name="firstName" value="<?php echo $first_name2; ?>" onchange="needToConfirm=true" <?php echo $style_first_name ?> />
這是由類的驗證過程:
$_SESSION['ui']['first_name'][1] = $this->first_name;
if (isset($this->first_name))
{
if($this->first_name == NULL)
{
$_SESSION['ui']['first_name'][0] = 1;
}
else if(minRange(3, $this->first_name))
{
$_SESSION['ui']['first_name'][0] = 2;
}
else
{
array_push($set, "FirstName = '".$db->sql_escape($this->first_name)."'");
}
}
這是處理最終錯誤的PHP代碼:
$error_bg = "style=\"background:#EE5C42\"";
//FIRST NAME
if($_SESSION['ui']['first_name'][0] == 1)
{
$style_first_name = $error_bg;
$first_name2 = $_SESSION['ui']['first_name'][1];
}
else if($_SESSION['ui']['first_name'][0] == 2)
{
$style_first_name = $error_bg;
$first_name2 = $_SESSION['ui']['first_name'][1];
$text_first_name = "<span class=\"errorText\">Your first name must consist of at least 3 characters.</span>";
}
else
{
$first_name2 = $userdetails["FirstName"];
}
在頁面末尾有一個小函數來取消設置會話變量。
我想知道它有什麼辦法可以使這個更簡單,更容易起牀和運行?
「*完美形式*」? – Lion
也許不是我在那裏選擇的正確的熱。也許「好形式」更合適。 –
你的問題不適合這樣既然所以不讚賞關於「什麼是最好」或「完美」的問題 –