Ped@ntilva Posted April 4, 2006 at 10:53 PM Report #20933 Posted April 4, 2006 at 10:53 PM Boas pessoal. Fiz um pequeno script para validar um email a pedido do joninho e aqui está ele: <?php $erro = false;//vai ser a variavel que vai dizer se o e-mail e valido ou nao $email = "nick.kkcoisa@server.com"; $arroba = "@"; $ponto = "."; //$pos fica com a posicao do arroba $pos = strpos($email, $arroba); //caso nao tenha encontrado o arroba coloca erro a true if ($pos === false) { $erro = true; //caso encontre o arroba e este esteja nao esteja //no inicio do mail vai seguir as outras condicoes }else if ($pos > 0){ //$dominio vai ter o resto da string(desde @ ate ao fim) $dominio = substr($email, $pos); //procura o "." no dominio $pos2 = strpos($dominio, $ponto); //caso o dominio tenha menos de um caracter da erro if ($pos2 < 2){ $erro = true; //se o "." estiver no fim do dominio tambem da erro }else if ($pos2 == strlen($dominio)){ $erro = true; } } if ($erro) print "E-mail inválido."; else print "E-mail válido."; ?> Espero que os comentários sejam suficientes para todos. Cumps, Pedantilva
joninho Posted April 4, 2006 at 11:08 PM Report #20941 Posted April 4, 2006 at 11:08 PM tenho umas duvidas :S, $pos = strpos($email, $arroba); isto o que faz? tipo o que é que significa o $email e o $arroba ? entao quem usar isso pode meter um mail do tipo eu@a ??
Ped@ntilva Posted April 4, 2006 at 11:15 PM Author Report #20943 Posted April 4, 2006 at 11:15 PM Se clicares em cima do strpos vai ter ao manual de php e dá-te todas as instruções do que faz isso. Mesmo assim passo a explicar: $pos = strpos($email, $arroba); $pos vai ser uma variavel do tipo inteira na qual vai ser colocado a posição em que o strpos encontra o $arroba dentro do $email. nesta primeira parte ele so verifica se existe o @ mas no resto do codigo ele verifica se existe o ponto depois do @ e blabla.... Cumps.
joninho Posted April 4, 2006 at 11:27 PM Report #20945 Posted April 4, 2006 at 11:27 PM aki: if ($erro) print "E-mail inválido."; else print "E-mail válido."; nao devia ser: if ($erro){ print "E-mail inválido."; }else{ print "E-mail válido."; } ??
Ped@ntilva Posted April 4, 2006 at 11:37 PM Author Report #20948 Posted April 4, 2006 at 11:37 PM Tas a falar das "{" "}", certo? Quando num if ou ciclo for ou while só vais executar uma instrução não precisas de colocar chavetas. Mas é boa prática colocá-las. Cumps.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now