Суть в том что бы проверять поля формы и 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