我有下面的代碼行PHP在確保所有表單域的頁面的頂部已經在他們的內容,而不是提交空...PHP是沒有檢測到所有空字段
if(!isset($_POST['name'])) { $err_name = 1; }
if (!isset($_POST['phone'])) { $err_phone = 1; }
if (!isset($_POST['email'])) { $err_email = 1; }
if ((!isset($_POST['serve'])) && ($_POST['other'] == "")) { $err_serve = 1; }
的名字是一個文本輸入
電子郵件是一個文本輸入
手機文本輸入
服務是一個複選框陣列
其他是文本輸入
然後下面,我已經得到下面的行,其允許PHP代碼繼續,如果沒有錯誤(上文)
if (($err_name != 1) && ($err_phone != 1) && ($err_email != 1) && ($err_serve != 1)) {
$name = $_POST['name']; // required
$email_from = $_POST['email']; // required
$phone = $_POST['phone']; // required
$serve = $_POST['serve'];
$other = $_POST['other'];
然後我有THI的下到每個表單字段...
<?php if ($err_name == 1) { echo '<font color="red">Name cannot be empty</font>'; } ?>
<?php if ($err_phone == 1) { echo '<br /><font color="red">Phone cannot be empty</font>'; } ?>
<?php if ($err_email == 1) { echo '<font color="red">Email cannot be empty</font>'; } ?>
<?php if($err_serve == 1) { echo '<br /><font color="red">You must choose at least 1 area to serve</font>'; } ?>
是否有人可以幫助我弄清楚,爲什麼它的執行以下操作...
如果我帶
&& ($err_serve != 1)
出來的第二碼,一切 除了電話顯示錯誤信息如果我離開它在,只有err_serve拋出錯誤。其他 被忽略,並且不顯示錯誤。
電話拒絕拋出錯誤信息。這是PHP中的所有處理$ _POST 的地方。
注意,所有的測試都通過提交完全是空的形式
這是因爲您使用'isset()'來設置錯誤條件。空文本字段仍然設置並與表單一起發送,但不是未勾選的複選框。 –
顯示錶格。使用空。和未經檢查的複選框是唯一沒有發送到服務器的表單元素 – chiliNUT
嘗試評估var如if($ var){true/false}會出現什麼問題? – Edward