Sahen
@Sahen
ох уж это программирование.....

Проверка и очистка полей форм, пойдет?

Суть в том что бы проверять поля формы и URL на валидность и очищать от кулхацкерских артефактов для дальнейшей работы(в JS и т.п. не силен(вообще - 0, пока что) так что на счет URL не уверен. Да и в общем - тоже).
Знаю что чуть говнокодисто, извиняюсь, накидал по быстрому. Если одобрите то буду причесывать.
По моему сама задумка хорошая, вот только кажется выглядит как-то костыльно.
Есть ли смысл в подобной function Cleaner(); для этих целей или это можно сделать как-то аккуратнее?
Что скажите?

function Cleaner($Reg_exp, $Subjekt, $Min, $Max, $Place){  	//Очистка #метка регулярного выражения, объект для проверки, минимальная длина, максимальная длина, источник
	$Reg_exp_arr = array(	          "url"	=> "~[^a-zA-Z0-9\_\/\-]~",
							"pwd"	=> "~[^a-zA-Z0-9]~",
							"mail"	=> "~[^a-z0-9\-\_\.\@]~",
							"text"	=> "~[^a-zA-Z0-9\-]~",
	);
	$Count = 0;
	$Clean_value = preg_replace($Reg_exp_arr[$Reg_exp], '', $Subjekt, -1 , $Count);
	$Length = strlen($Clean_value);
	if($Count > 0) MessageSend(1, $Place);
	if($Length == 0) MessageSend(0, $Place);
	if($Length < $Min) MessageSend(2, $Place);
	if($Length > $Max) MessageSend(3, $Place);
	return $Clean_value;
}

function MessageSend($Message_type, $Place) { 				//Отправка уведомления #тип уведомления, источник(что, где)
if($Message_type == 0) 		$Message = "Empty in ";
elseif ($Message_type == 1) 		$Message = "Bad symbols in ";
elseif ($Message_type == 2) 	$Message = "Too short value in ";
elseif ($Message_type == 3) 	$Message = "Too long value in ";
elseif ($Message_type == 4) 	$Message = "Fill in the field ";
elseif ($Message_type == 5) 	$Message = "This page does not exist!";
elseif ($Message_type == 6) 	$Message = " ";
$_SESSION['message'] = '<div class="MessageBlock">'.$Message.' '.$Place.'</div>';
exit(header('Location: /message'));
}

$FullName = 	Cleaner("text",		$_POST['userFullName'],		"3", "25",	"field Your Full Name!");	#Your Full Name
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы