Jump to content


Photo

Return Especifico Para Cada Parte Da Função


  • Faça o login para participar
9 replies to this topic

#1 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 28/06/2005, 09:38

Usando a função de validar username que tem la no banco de funções.

Gostaria de retornar mensagem especificas mostrando o pq do username não ser válido.

Por exemplo: se usou caracteres ilegais, se o comprimento minimo ou maximo não está correto, ou esta usando nomes ilegais.

A função:
function validate_username( $user_name, $min_length = 3, $max_length = 15 ) {
    // Deve ter ao menos um caractere
    if( strspn( $user_name, "abcdefghijklmnopqrstuvwxyz0123456789-_" ) == 0 ) {
        return false;
    }
    // Deve conter todos os caracteres legais
    if( strspn( $user_name, "abcdefghijklmnopqrstuvwxyz0123456789-_ " ) != strlen($user_name) ) {
        return false;
    }
    // Comprimento máximo e mínimo
    if( strlen($user_name) < $min_length ) { return false; }
    if( strlen($user_name) > $max_length ) { 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;
e uso assim:
if (validate_username("$login"))
{
	echo "Usuário válido";
}
else
{
	echo "Usuário inválido";
}

Edição feita por: <?PHPMAN?>, 28/06/2005, 09:39.

Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br

#2 wmgoiania

wmgoiania

    $Sabedoria = "Justiça";

  • Usuários
  • 115 posts
  • Sexo:Não informado
  • Localidade:Goiânia - Go - Brasil

Posted 28/06/2005, 10:09

function validate_username( $user_name, $min_length = 3, $max_length = 15 ) {
   $mensagem = "";
   // Deve ter ao menos um caractere
   if( strspn( $user_name, "abcdefghijklmnopqrstuvwxyz0123456789-_" ) == 0 ) {
       $mensagem .= "Mensagem de erro 1.";

   }
   // Deve conter todos os caracteres legais
   if( strspn( $user_name, "abcdefghijklmnopqrstuvwxyz0123456789-_ " ) != strlen($user_name) ) {
       $mensagem .= "Mensagem de erro 2";
   }
   // Comprimento máximo e mínimo
   if( strlen($user_name) < $min_length ) { $mensagem .= "Mensagem de erro 3."; }
   if( strlen($user_name) > $max_length ) { $mensagem .= "Mensagem de erro 4."; }
   // 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 ) ) {
       $mensagem .= "Mensagem de erro 5";
   }
   if( eregi( "^(anoncvs_)$" , $user_name ) ) { $mensagem .= "Mensagem de erro 6"; }
return $mensagem;
}
  


e recebe assim:

if (!($mensagem = validate_username("$login")))
{
echo "Usuário válido";
}
else
{
echo "Ocorreram os seguintes problemas: $mensagem";
}

Acho q isso resolve.

Edição feita por: wmgoiania, 28/06/2005, 10:10.


<?php
$name = "Pedro Herique de M. Rodrigues";
$age = "18 anos(19/04/2005)";
$email = "wmgoiania@yahoo.com.br";
$interesty = "PHP, HTML, CSS, JavaScript, DHTML e MySQL";
echo "Olá! Meu nome é $name e tenho $age. Meus interesses são: $interesty. Se quizer falar cmgo mande um e-mail para: $email.";
?>


"Os homens maus não entendem o que é justo, mas os que buscam o SENHOR entendem tudo." Pv. 28:5

#3 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 28/06/2005, 10:25

Opa ... ;)

Seguinte ... otimizei esta função pra tu e quem quiser ... enjoy ! :D
<?
function validate_username($username,$min=3,$max=15){
// Comprimento
if(strlen($username)<$min||strlen($username)>$max)$mensagem[]="Tamanho fora do permitido";
// Caracteres permitidos
if(!ereg("[0-9A-Za-z]-_",$username))$mensagem[]="Caracte inválido";
// Nomes ilegais
$ilegal=array("root","bin","daemon","adm","lp","sync","shutdown","halt","mail",
"news","uucp","operator","games","mysql","httpd","nobody","dummy","www",
"cvs","shell","ftp","irc","debian","ns","downl","oad");
for($c=0;$c<=count($ilegal);$c++)
if(preg_match("/^{$ilegal{$c}}$/",$username)){
$mensagem[]="Nome bloqueado";
break;
}
return $mensagem; // $mensagem é um array !
}
Exemplo de uso:
<?
$usuario="x!x";
if(count(validate_username($usuario))>0)
foreach(validate_username($usuario) as $erro)echo "{$erro}<br />";
?
[]’s :DAté mais

#4 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 28/06/2005, 10:26

function validate_username( $user_name, $min_length = 3, $max_length = 15 ) {
   $mensagem = "";
   // Deve ter ao menos um caractere
   if( strspn( $user_name, "abcdefghijklmnopqrstuvwxyz0123456789-_" ) == 0 ) {
       $mensagem .= "Mensagem de erro 1.";

   }
   // Deve conter todos os caracteres legais
   if( strspn( $user_name, "abcdefghijklmnopqrstuvwxyz0123456789-_ " ) != strlen($user_name) ) {
       $mensagem .= "Mensagem de erro 2";
   }
   // Comprimento máximo e mínimo
   if( strlen($user_name) < $min_length ) { $mensagem .= "Mensagem de erro 3."; }
   if( strlen($user_name) > $max_length ) { $mensagem .= "Mensagem de erro 4."; }
   // 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 ) ) {
       $mensagem .= "Mensagem de erro 5";
   }
   if( eregi( "^(anoncvs_)$" , $user_name ) ) { $mensagem .= "Mensagem de erro 6"; }
return $mensagem;
}
  


e recebe assim:

if (!($mensagem = validate_username("$login")))
{
echo "Usuário válido";
}
else
{
echo "Ocorreram os seguintes problemas: $mensagem";
}

Acho q isso resolve.

Valeu, é isso mesmo...
Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br

#5 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 28/06/2005, 10:45

O q significa isso?
if( eregi( "^(anoncvs_)$" , $user_name ) ) { $mensagem .= "Mensagem de erro 6"; }

Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br

#6 wmgoiania

wmgoiania

    $Sabedoria = "Justiça";

  • Usuários
  • 115 posts
  • Sexo:Não informado
  • Localidade:Goiânia - Go - Brasil

Posted 28/06/2005, 10:53

Qual parte da sentença??

<?php
$name = "Pedro Herique de M. Rodrigues";
$age = "18 anos(19/04/2005)";
$email = "wmgoiania@yahoo.com.br";
$interesty = "PHP, HTML, CSS, JavaScript, DHTML e MySQL";
echo "Olá! Meu nome é $name e tenho $age. Meus interesses são: $interesty. Se quizer falar cmgo mande um e-mail para: $email.";
?>


"Os homens maus não entendem o que é justo, mas os que buscam o SENHOR entendem tudo." Pv. 28:5

#7 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 28/06/2005, 10:59

Qual parte da sentença??

eregi( "^(anoncvs_)$" , $user_name )
Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br

#8 wmgoiania

wmgoiania

    $Sabedoria = "Justiça";

  • Usuários
  • 115 posts
  • Sexo:Não informado
  • Localidade:Goiânia - Go - Brasil

Posted 28/06/2005, 11:08

De ond vc tiro esse código?? Vc copio de algum scritp pronto?? Essa sentença ta meio estranha mesmo... ela ta dando algum tipo d erro, ou ta rodando legal?? Da uma caçada la no manual... ou no site do php.. e responde ai pra gnt dpois..! blz!?

<?php
$name = "Pedro Herique de M. Rodrigues";
$age = "18 anos(19/04/2005)";
$email = "wmgoiania@yahoo.com.br";
$interesty = "PHP, HTML, CSS, JavaScript, DHTML e MySQL";
echo "Olá! Meu nome é $name e tenho $age. Meus interesses são: $interesty. Se quizer falar cmgo mande um e-mail para: $email.";
?>


"Os homens maus não entendem o que é justo, mas os que buscam o SENHOR entendem tudo." Pv. 28:5

#9 <?PHPMAN?>

<?PHPMAN?>

    Ativo

  • Usuários
  • 300 posts
  • Sexo:Não informado

Posted 28/06/2005, 11:22

De ond vc tiro esse código?? Vc copio de algum scritp pronto?? Essa sentença ta meio estranha mesmo... ela ta dando algum tipo d erro, ou ta rodando legal?? Da uma caçada la no manual... ou no site do php.. e responde ai pra gnt dpois..! blz!?

Como disse no 1º post, peguei na sessão de funções.

Achei isso no php.net: http://www.php.net/anoncvs.php

mas acho que vou tirar essa parte, pois não ta dando erro e acho que não vai precisar.

Outra coisa, como faço pra utilizar a função de verificação de email junto com esse codigo?
Função verifica 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 ) );
}

queria verificar os erros do login e do email tambem no mesmo codigo:
if (!($mensagem = validate_username("$login"))) //verificar o email aqui tambem
{
//ação aqui
}

Nome: Luciano André Bruch
WebSite: www.guiamedianeira.com.br
Profissão: WebDesigner / Programador
MSN:luciano@guiamedianeira.com.br

#10 wmgoiania

wmgoiania

    $Sabedoria = "Justiça";

  • Usuários
  • 115 posts
  • Sexo:Não informado
  • Localidade:Goiânia - Go - Brasil

Posted 28/06/2005, 11:32

Bem, a funcao eregi retorna TRUE se o primeiro argumento dela estiver contido no segundo, nesse caso se '[^*(...)' estiverem contidos no email que o usuario estiver digitado. Para + informacoes: http://br2.php.net/m...nction.ereg.php

<?php
$name = "Pedro Herique de M. Rodrigues";
$age = "18 anos(19/04/2005)";
$email = "wmgoiania@yahoo.com.br";
$interesty = "PHP, HTML, CSS, JavaScript, DHTML e MySQL";
echo "Olá! Meu nome é $name e tenho $age. Meus interesses são: $interesty. Se quizer falar cmgo mande um e-mail para: $email.";
?>


"Os homens maus não entendem o que é justo, mas os que buscam o SENHOR entendem tudo." Pv. 28:5




2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq