2014-05-25 121 views
-1

如果我提交空白字段,它仍然會將其添加到數據庫中。我做了一個循環來檢查一切是否到位,但是它一直將其重定向到錯誤頁面。我一直在掙扎近2個小時,但無法找到解決方案。 鏈接是here,因爲我可以張貼超過2:註冊表格驗證錯誤

回答

0

嘗試設置

不允許NULL

表的列屬性。它可以在表格設計或數據庫中的編輯表格設計期間完成。 希望這有助於。

0

您使用空()。 http://us3.php.net/empty 僅當NULL,FALSE或不存在時才返回false,如果爲空字符串,則返回NOT。

你應該這樣做:

foreach($required as $post){ 
    if ($_POST[$post] == "") { 
     die(header("refresh:0.5;url=error.php")); 
    } 
} 

不過,我不知道爲什麼你這麼就只拿到形式提交執行不只是把這個在整個代碼塊。那麼你不必重新檢查它。

if (isset($_POST)) { //or a specific $_POST variable if multiple submit paths 
    //code here 
} 

此外,您應該編輯您的問題,包括在問題或在未來的相關代碼,搜索者可能會發現,你的引擎收錄的鏈接不再起作用。

-1

我覺得侑一個尋找類似,

if(isset($_POST['field1']) && !$_POST['field1'] =="") 
{ 
//your codes goes here 

} 

也許你已經做了類似

<input type=text name=name1 value ="" /> 

如果是這樣,請不要像,

<input type=text name=name1 /> 

這將不要將name1發送到您的頁面;

+0

這不是一個_value _屬性,但他試圖在** $ _ POST **數組上獲得一個_undefined _索引,這就是爲什麼他對空數據的測試總是如此,並且將其重定向到error.php頁面,無論他將其作爲值放入表單中。 –

0

我想以任何方式,你應該做一些客戶端驗證的空場像jQuery功能:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(function(){ 
     $("form").submit(function(){ 
      if($("#first_name").val() == ''){ 
       alert("First name cann't be empty"); 
       return false; 
      }else if($("#last_name").val() == ''){ 
       alert("Last name cann't be empty"); 
       return false; 
      }else if($("#email").val() == ''){ 
       alert("Email cann't be empty"); 
       return false; 
      }else if($("#password").val() == ''){ 
       alert("Password name cann't be empty"); 
       return false; 
      }    
     }); 
    });     
</script> 
0

你試圖讓$ _ POST數組索引不存在,所以糾正你$需要陣列,並把場名稱不變量的名稱,就像這process.php

$required = array('first_name','last_name','password','email'); 
foreach($required as $post){ 
    if($post = empty($_POST[$post]) || $_POST[$post] == ""){ 
     die(header("refresh:0.5;url=error.php")); 
    } elseif($required != empty($_POST)) { 
     echo ""; 
    } 
}