PHP でエラー チェック システムを実装しようとしています (文字数が少なすぎる、空白の入力など)。
現在、タイトルを空白のままにすると、エラーはキャッチされますが、メッセージは表示されません。実際に入力をチェックする最初の部分は次のとおりです (イベント タイトルにのみ表示されます)。
Class check_errors{
function create_event_errors($event_title){
global $submit_error;
if($event_title == ""){
$field = "event_title";
$submit_error->setError($field,"Title cannot be blank");
}
elseif(strlen($event_title) < 5){
$field = "event_title";
$submit_error->setError($field,"Title must be longer than 5 characters");
}
elseif(strlen($event_title) > 75){
$field = "title";
$submit_error->generalError($field,"Title must be less than 40 characters");
}
}
同じページに、display_errors クラスがあります。
Class display_errors{
var $values = array(); //Holds submitted form field values
var $errors = array(); //Holds submitted form error messages
function setValue($field, $value){
$this->values[$field] = $value;
}
function setError($field, $errmsg){
$this->errors[$field] = $errmsg; //if I echo this, the error message displays
$this->num_errors = count($this->errors); //if I echo this, the # of errors displays
}
function value($field){
if(array_key_exists($field,$this->values)){
return htmlspecialchars(stripslashes($this->values[$field]));
}else{
return "";
}
}
function error($field){
if(array_key_exists($field,$this->errors)){
return $this->errors[$field];
}else{
return "";
}
}
}
さて、問題です。エラーが検出されたかどうかを確認しようとすると、何も見つかりません
$check_errors->create_event_errors($event_title); //submit the input to be checked
echo $display_errors->num_errors; //this does not display the # of errors. It does when I echo from within the function in the class though
if($display_errors->num_errors == 0){
//submit event
}