Napisalem dość prosty kawalek kodu w PHP z opisami krótkimi opisami:
if(!preg_match("/^[a-zA-Z0-9-_.!]+$/", $login)) {
// Można uzyc tylko znakow a-z A-Z 0-0 oraz specjalnych - _ . !
exit();
}
else if (filter_var($login, FILTER_SANITIZE_STRING) != $login) {
// filter usunal inne znaki (oraz zamknal polaczenie), których regex nie powinien przepuscic, przewrażliwienie na punkcie bezpieczenstwa.
exit();
}
else if (filter_var($email, FILTER_SANITIZE_EMAIL) != $email) {
// kasowanie znakow nie potrzebnych do emailu;
exit();
}
else if (filter_var($email, FILTER_VALIDATE_EMAIL) == false) {
// Sprawdzenie poprawnosci budowy emailu;
exit();
}
// tresc przeflitrowana porownuje do obecniej i zwracam blad w przypadku nierownosci poniewaz czasami nieświadomie uzytkownicy dopisza inny znak, a filter wysle na email po sanityzacji i uzytkownik go nie dostaje.
Nie jest to oczywiście cala walidacja tylko część, zastanawiam się czy zrobienie tego w taki sposób ma sens i co o tym myślicie :)