Após melhorar o código delas, e fazer uma checagem melhor, estou colocando aqui 2 funções bem úteis para serem utilizadas em sistemas de login, sistemas de newsletter, e outros recursos onde são necessários checar o nome do usuário e o email.
Função que valida email:
function validate_email( $email ) {
return ( eregi( '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+\.'. '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email ) );
}A função retorna true/false, caso o email seja válido ou não.
Função que valida username:
function validate_username( $user_name ) {
// Deve ter ao menos um caractere
if( strspn( $user_name, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-" ) == 0 ) {
return false;
}
// Deve conter todos os caracteres legais
if( strspn( $user_name, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_" ) != strlen($user_name) ) {
return false;
}
// Comprimento máximo e mínimo
if( strlen($user_name) < 5 ) { return false; }
if( strlen($user_name) > 25 ) { return false; }
// Nomes ilegais
if( eregi( "^((root)|(bin)|(daemon)|(adm)|(lp)|(sync)|(shutdown)|(halt)|(mail)|(news)|(uucp)|(operator)|(games)|(mysql)|(httpd)|(nobody)|(dummy)|(www)|(cvs)|(shell)|(ftp)|(irc)|(debian)|(ns)|(download))$", $user_name ) ) {
return false;
}
if( eregi( "^(anoncvs_)$" , $user_name ) ) { return false; }
return true;
}
?>Gostaria que alguém fizesse a modificação para suporte a espaços nesta função. Todas as alterações que tentei geraram erros. =\
Ela retorna true/false caso o username seja válido ou não.
Espero que elas sejam úteis, principalmente agora que segurança é algo vital em sistemas.
Ah... agora possuímos um fórum de avaliação de sistemas. Estas duas funções serão úteis para sistemas mais seguros.
[]s,
















