[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: класс проверки полей формы
krivarik
Хочу сразу попросить чтобы фразы типа заплати посмотрю, или незнаешь не берись, зачем писать если есть framework, ну или что нибудь такого плана не писать. Без практики не научишся поэтому и пишу.
А если хотите реально помочь то буду благодарен.
Я в ООП только начинаю. Сейчас пишу класс проверки полей формы, он только в начальном состоянии. но некоторые функции он уже исправно выполняет. Подскажите может както можно модернизировать код чтобы он был более элегантен.
Вот сам код:

abstract class ValidForm{
protected $validTrue; /* Путь к изображению или сообщение, об удачной проверки. Может быть пустым */
protected $validFalse; /* Содержит путь к изображению или сообщение о непройденной проверки. Может быть пустое */
protected $flagVyvodForm=true; /* Флаг указывающий об удачной проверки всей формы при неудачной проверки будет содержать False */
protected $messageLIST; /* Массив сообщений о пройденной или непройденной проверки поля формы. Ключи массива имена полей форм */
protected $dataForm=array(); /* Массив данных полей формы. Ключи массива имена полей формы. Элемент массива будет пустой если данные
формы не пройдут проверку */


public function __construct ($validTrue="", $validFalse=""){
/* Устанавливам переменны */
$this->validTrue=$validTrue;
$this->validFalse=$validFalse;
}
/* метод для проверки данных формы */

public function SetProverka ($data, $namePole, $filtres){
if(!is_array($data)) {
$this->KodProverki($data, $namePole, $filtres);
}
else {
/*Тут будет выполняться проверка если будут поля формы с одинаковым именем*/
}
}


/* Производит запись в переменные в зависемости от результатов проверки */

private function KodProverki($data, $namePole, $filtres){
$data=trim($data,"\x00..\x2D"); /* удаляет первые 45 символов ASCII кода, как сами посебе так и в начале и конце строки */
foreach ($filtres as $klyuch=>$znachenie){
/* разбиваем строку на подстроки по разделителю
* в нулевом массиве сообщение
* в первом массив данные для проверки если надо
*/

$znachenie=explode('|', $znachenie);

if (self::$klyuch($data, $znachenie[1])) {
$this->dataForm[$namePole]=$data;
$this->messageLIST[$namePole]=$this->validTrue;
} elseif(!empty($znachenie[0])) {
$this->messageLIST[$namePole]=$znachenie[0];
$this->dataForm[$namePole]="";
break;
} else {
$this->messageLIST[$namePole]=$this->validFalse;
$this->dataForm[$namePole]="";
break;
}

}
}

/* Статический метод required (поле обязательно к заполнению) возвращает FALSE если поле пустое
* или TRUE если заполнено
*/

static function Required($data){
return (!empty($data));
}
/* Статический метод Maxlength (максимальная длина длина строки)
* возвращает FALSE если строка больше допустимой длины и TRUE если меньше или равно
*/

static function Maxlength($data,$val){
return (strlen($data) > $val) ? FALSE : TRUE;
}
/* Статический метод Minlength (Минимальная длина длина строки)
* возвращает FALSE если строка меньше допустимой длины и TRUE если меньше или равно
*/

static function Minlength($data,$val){
return (strlen($data) < $val) ? FALSE : TRUE;
}
abstract public function GetWrite();
}


class Proba extends ValidForm {

public function GetWrite (){
$fg=$this->messageLIST;
return($fg);}

public function Getmess(){
$tt=$this->dataForm;
return ($tt);
}}






$messT="правильно";
$messF="неправильно";
$data="проверка"; /*данные поля*/
$namePole="proba";/* имя поля*/
$rules=array("Required"=>"не должно быть пустым", "Maxlength"=>"Длина не больше5|9", "Minlength"=>"длина не меньше|2"); /*фильтры проверки*/

$te=new proba($messT, $messF);
$te->SetProverka ($data, $name, $rules);
print_r ($te->GetWrite());
echo "<br>";
print_r ($te->Getmess());


М
Обрамляйте код специальными тегами
Winston
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.