Proszę was o ocene skryptu pod kątem przydatności i funkcjonalności oraz proszę o wskazówki :) Czyli co zmienić, czego nie używać itp :)
<?php
// (kod)
function checkString($name, $value, $length, $type='all') {
function showAlert($msg) {
print ' <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript">
alert("'.$msg.'");
</script>';
}
$charsToReplace = array('ą', 'ż', 'ź', 'ś', 'ę', 'Ć', 'ń', 'ł', 'ó', 'Ą', 'Ż', 'Ź', 'Ś', 'Ę', 'Ć', 'Ń', 'Ł', 'Ó'); $valueToCount = str_replace($charsToReplace, 'x', $value); $min = $length[0];
$max = $length[1];
} else {
echo 'checkString length arg failed'; }
if(strlen($valueToCount) == 0) { showAlert('Pole \''.$name.'\' jest obowiązkowe, nie może być puste.');
return false;
} elseif(strlen($valueToCount) <= $min) { showAlert('Liczba znaków w polu \''.$name.'\' jest za mała. Wymagana minimalna liczba znaków: '.$min.'.');
return false;
} elseif(strlen($valueToCount) >= $max) { showAlert('Liczba znaków w polu \''.$name.'\' jest za duża. Wymagana maksymalna liczba znaków: '.$max.'.');
return false;
}
if($type == 'n') {
showAlert('Zawartość pola \''.$name.'\' musi być liczbą.');
return false;
}
} elseif($type == 'tl') {
showAlert('Zawartość pola \''.$name.'\' może zawierać cyfry, małe i duże litery bez polskich znaków diakrytycznych oraz znaki specjalne: (._-)');
return false;
}
} elseif($type == 'm') {
if(!preg_match ('/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i', $value)) { showAlert('Podany adres email jest nieprawidlowy.');
return false;
}
}
return true;
}
// (kod)
?>
Do tego funcja makeSafe();
<?php
// (kod)
function makeSafe($string) {
}
return $string;
}
// (kod)
?>
Wywyłanie:
<?php
// (kod)
// sprawdzenie testowo jednego pola z formularza
$imieUsera = makeSafe($_POST['imie']);
$nazwiskoUsera = makeSafe($_POST['nazwisko']);
if(checkString('Imie', $imieUsera, '3-10', $type='tl') && checkString('Nazwisko', $nazwiskoUsera, '3-10', $type='tl')) {
} else {
}
// (kod)
?>
Ten post edytował andrzejt17 13.05.2011, 17:11:18