Jump to content
Ped@ntilva

Validar e-mail

Recommended Posts

Ped@ntilva

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

Share this post


Link to post
Share on other sites
joninho

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 ??

Share this post


Link to post
Share on other sites
Ped@ntilva

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.

Share this post


Link to post
Share on other sites
joninho

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.";

}

??

Share this post


Link to post
Share on other sites
Ped@ntilva

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.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.