2017-07-26 16 views
0

私は以下のスクリプトを使用してフォームデータを検証しています。 エラーがある場合にフォームを送信すると、エラーメッセージが正しく表示されますが、エラーと検証が成功しなかった場合、スクリプトをテストするために変数をエコーし​​ますが、スクリプトはこれを表示しています:[] コードを調べてくださいこれを解決するのに役立ちます。phpスクリプトが結果を表示しています

<?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

?あなたは私にそれの内容を見せてもらえますか?私は ''/includes/functions.php'にあると思いますか? – bubjavier

+0

投稿を更新しました – wfareed

+0

これはなんですか?なぜこれを使っていますか?グローバル$ dbc; –

答えて

1

あなたがもし条件に問題があります。

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

これは常にTRUE

TRUE$error = []理由とcount([] > 0)結果に戻ります。だからあなたはいつもあなたが終わる:私はあなたがここで何を意味するかと考えてい

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

することです:関数 `clean_dataは()`定義されたファイル

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

笑!!!!それは本当です!私の悪い! – wfareed

+0

ありがとうございました:) – wfareed

+1

ようこそ。 :) – bubjavier

関連する問題