2011-03-16 13 views
0

この関数の問題は何ですか?関数の問題php

function validate_maxchars($t, $a, $alias, $required) { 
    if(strlen($t) <= $a) { 
     if(empty($t) && $required) { 
      return 'Field ' . $alias . ' is required.'; 
     } else { 
      return true; 
     } 
    } else { 
     return 'Field ' . $alias . ' has a max of ' . $a . ' characters. You exceed the limit in ' . (strlen($t)-$a) . ' char(s).'; 
    } 
} 

$err = 0; 

    $err= validate_maxchars($_POST['prod_name'], 22, 'Product Name', 0); 
    if($err != 1) { return $err; } else { $data['name'] = htmlentities($_POST['prod_name'], ENT_QUOTES); } 

表示エラー:

 <?php 
      if($err) { 
     ?> 
     <div id="error" style="margin: 11px 5px 0 5px; padding: 9px; background: #eeb3b3; color: white; font-weight: bold; font-size: 11px; border: 1px solid #fd9797;"><?php echo $err; ?></div> 
     <?php 
      } 
     ?> 

私は空白のページを持って、このフォームを送信します。

+0

$ aが数値でありますか? –

+1

$ tがstrlenチェックの下で空であるかどうかチェックするのは全く意味がありません –

+0

'echo'の代わりに' var_dump($ err) 'を試して出力を報告してください。 – saint

答えて

0

それは私が間違っていることが、すべての可能なエラーや警告を表示するには、ファイルの先頭でこれを行うことによって、エラー報告を強制的に試みることができる

<?php 
    if($err) { 
    ?> 
    <div id="error" style="margin: 11px 5px 0 5px; padding: 9px; background: #eeb3b3; color: white; font-weight: bold; font-size: 11px; border: 1px solid #fd9797;"><?php echo $err; ?></div> 
    <?php 
     } 
     else 
     echo $data['name']; 
    ?> 
+0

これは問題ではありません。エラーがない場合、他のページにリダイレクトされています...エラーが発生したときに問題が発生しています...コード内にエラーのような空白のページがあります。 – Mango

+0

@Mango:OK、テストのためだけにこのコードをページの始めに使用してみてください... '<?php echo $ err;出口(); ?> 'エラーが存在することを確認してください。ページを実行して文字列にエラーがあることを確認すると、エラーが表示されるはずです...何も表示されない場合は、この行を削除してみてください(またはコメントアウトしてください) '$ err = 0; ' – sikas

+0

何も動作しません。問題はエラーではなく機能にあると考えてください。 – Mango

0

...エラーがないときは何も表示しないように持っています。

error_reporting (E_ALL); 

if(! ini_get('display_errors')) { 
    ini_set('display_errors', 1); 
} 
1

これを追加します。

error_reporting (-1); 
ini_set('display_errors', 1);