Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

felippedonatto

Como avisar que já existe um e-mail ou CPF cadastrado?

Recommended Posts

Olá pessoal, estou desenvolvendo meu primeiro sistema de cadastro, simples porem estou encontrando alguns erros.

 

Quero informar ao meu usuário que o e-mail e CPF já foi cadastrado, porem quando uso o seguinte codigo

 

if($email == "") {
echo "Digite seu email";
exit;
} else {
$consulta = mysql_query("SELECT * FROM usuarios where Email= '$email'");
$linha = mysql_num_rows($consulta);
if($linha != 0) {
echo "O nome de usuario que você<br/>
Digitou já existe tente outro!";
exit;
}
}
ele está me apresentando o seguinte erro, quando o usuário não existe ele cadastra mais informa que o e-mail já esta cadastrado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 outra possibilidade:

if(empty($email)) {

echo "preencha o campo";
exit;
} else {
$consulta = mysql_query("SELECT * FROM usuarios where email = '$email' ");
$linha = mysql_num_rows($consulta);

if($linha != 0) {

echo "O e-mail que você<br />
digitou já existe; tente outro!";
}
else
{
// cadastra...
echo "cadastro efetuado com sucesso";
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma outra sugestão ainda é tratar melhor esses erros. Não precisa do Exit se tratar os erros da forma correta. Lembre-se que o Exit impede que a execução do script continue. Isso quer dizer que nem mesmo o HTML da página que estiver debaixo do Exit será executado. O script simplesmente será interrompido nesse ponto.

 

Pra evitar erros de layout oi coisas do gênero, poderia tratar seu código assim:

$consulta = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
while($m=mysql_fetch_array($consulta)){
	$mail = $m["email"];
}
if(empty($email) OR $email != $mail){
	echo "O campo <b>e-mail</b> foi preenchido incorretamente";
} elseif(mysql_num_rows($consulta) >= 1) {
	echo "O e-mail escolhido já está sendo utilizado";
} else {
	// Rode o código de cadastro do usuário aqui dentro
	// Ex.:
	// mysql_query("INSERT INTO usuarios (nome, email, cpf) VALUES('$nome', '$email', '$cpf')") or die(mysql_error());
	
	echo "Cadastro concluído com sucesso!";
}

Ou assim para ter maior controle ainda sobre os erros e criar um LOG com mensagens equivalentes a cada erro:

// Cria uma string para armazenar mensagens de erro e exibir posteriormente
$error = "";
$consulta = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
while($m=mysql_fetch_array($consulta)){
	$mail = $m["email"];
}

// Testa para ver se existem erros
if(empty($email) OR $email != $mail){
	$error .= "O campo <b>e-mail</b> foi preenchido incorretamente<br />";
} elseif(mysql_num_rows($consulta) >= 1) {
	$error .= "O e-mail escolhido já está sendo utilizado<br />";
}

// Se não tiver nenhum erro, cadastra o usuário. Do contrário, exibe a mensagem
if(empty($error)){
	// Rode o código de cadastro do usuário aqui dentro
	// Ex.:
	// mysql_query("INSERT INTO usuarios (nome, email, cpf) VALUES('$nome', '$email', '$cpf')") or die(mysql_error());
	
	echo "Cadastro concluído com sucesso!";
} else {
	echo "Os seguintes erros ocorreram:<br />".$error;
}

O código está comentado. uma outra dica é passar a utilizar MySQLi em vez da extensão MySQL. É mais rápida, mais segura e a extensão MySQL deixará de funcionar em breve.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.