2017-07-26 73 views
0

我正在使用以下腳本驗證表單數據。 當我提交表單時,如果有任何錯誤,錯誤信息顯示正常,但如果沒有錯誤和驗證成功,我嘗試回顯變量來測試腳本,但腳本只顯示:[] 請檢查代碼並幫助我解決這個問題。php腳本正在顯示weired結果

<?php 

//included files 
include("./includes/connect.php"); 
include("./includes/functions.php"); 
$errors = array(); 

//checking if user have submitted the form 
if(isset($_POST['submitted'])) { 
    //validating and cleaning submitted form data ... 
    if (isset($_POST['name']) && !empty($_POST['name'])) { 
     if(preg_match("/^[a-zA-Z ]{2,20}$/", strip_trim($_POST['name']))) { 
      $cln_name = clean_data($_POST['name']); 
     } else { 
      $_POST['name'] = FALSE; 
      $errors[] = "The name you entered is not valid"; 
     } 

    } else { 
     $errors[] = "You have not enter your name!"; 
    } 

    if(isset($_POST['email']) && !empty($_POST['email'])) { 
     $cln_email = filter_var($_POST['email'] , FILTER_SANITIZE_EMAIL); 
     if(filter_var($cln_email, FILTER_VALIDATE_EMAIL)) { 
      $cln_email = clean_data($cln_email); 
     } else { 
      $_POST['email'] = FALSE; 
      $errors[] = "The email you entered is not valid"; 
     } 
    } else { 
     $errors[] = "You have not provide you email!"; 
    } 

    if(isset($_POST['plate_num']) && !empty($_POST['plate_num'])) { 
     if(ctype_alnum($_POST['plate_num']) && strlen($_POST['plate_num']) >= 5) { 
      $cln_plate_num = clean_data($_POST['plate_num']); 
     } else { 
      $_POST['plate_num'] = FALSE; 
      $errors[] = "The plate number you provided is not a valid plate number"; 
     } 
    } else { 
     $errors[]= "You have not provide a plate number"; 
    } 
    //checking for errors and printing errors.. 
    if (count($errors > 0)) { 

     $errors_to_json = json_encode($errors); 
     echo $errors_to_json; 
     //foreach ($errors as $error) { 
      //echo $error . "<br />"; 
     //} 
    } else { 
     echo $cln_name . "<br />"; 
     echo $cln_email . "<br />"; 
     echo $cln_plate_num; 
    } 
} else { 
    echo "You did not submit the form!"; 
} 

?> 

此腳本返回僅此: []

任何想法,請?


的functions.php:

<?php 

function clean_data($data) { 
    if(function_exists('mysql_real_escape_string')) { 
     global $dbc; 
     $data = mysql_real_escape_string(trim($data), $dbc); 
     $data = strip_tags($data); 
    } else { 
     $data = mysql_escape_string(trim($data)); 
     $data = strip_tags($data); 
    } 
    return $data; 
} 


function strip_trim($data) { 
    $data = stripslashes(trim($data)); 
    return $data; 
} 



?> 
+0

的文件做了功能'clean_data()'定義?你能告訴我它的內容嗎?我假設它在'./include/ functions.php'中? – bubjavier

+0

我更新了這個帖子 – wfareed

+0

這是什麼?你爲什麼用這個?全局$ dbc; –

回答

1

你在你的病情是否有問題:

//checking for errors and printing errors.. 
if (count($errors > 0)) { 
... 

這將隨時返回TRUE因爲$error = []count([] > 0)結果TRUE

這就是爲什麼你總是在結束了:

$errors_to_json = json_encode($errors); 
echo $errors_to_json; 
// Will indeed display '[]' because json_encode([]) is '[]' 

,我相信你的意思在這裏是什麼:

if (count($errors) > 0) { 
... 
+0

大聲笑!!!!那是真實的 !我的錯 ! – wfareed

+0

非常感謝:) – wfareed

+1

不客氣。 :) – bubjavier