• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Ped@ntilva

Validar e-mail

5 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

}

??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora