Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, não aguento mais, to passando madrugadas para descobrir o erro mas não consigo.
Preciso criar uma validação de email com @ e . , já tentei de tudo expressões regulares, validador automático do PHP mas nada funciona.
Mas o que acontece de errado ?
Tudo funciona: validação do usuário, validação de email (se estiver vazio),.
A validação de email com @ e . até funciona, porém ao invés de ir para a próxima validação que verifica se usuário e email já estão cadastrados no BD, ele volta para a validação inicial, a só acrescenta o include.
A falha está logo após a linha:
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "<div style='position: absolute; top: 220px; left: 750px; z-index: 1'>Email inválido</div>";
}
Segue código completo abaixo:
<?php
include "config.php";
$usuario = trim($_POST['usuario']);
$email = trim($_POST['email']);
/ Vamos checar algum erro nos campos /
if ((!$usuario) || (!$email)) {
if (!$usuario){
echo "<div style='position: absolute; top: 210px; left: 785px; white-space: nowrap; z-index: 1'>Informe seu usuário</div>";
}
else
if (!$email){
echo "<div style='position: absolute; top: 220px; left: 750px; z-index: 1'>Informe o seu email </div>";
}
else
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "<div style='position: absolute; top: 220px; left: 750px; z-index: 1'>Email inválido</div>";
}
include "cadastro.php";
}else{
/ Vamos checar se o nome de Usuário escolhido e/ou Email já existem no banco de dados /
$sql_usuario_check = mysql_query(
"SELECT COUNT(usuario_id) FROM usuarios WHERE usuario='{$usuario}'"
);
$sql_email_check = mysql_query(
"SELECT COUNT(usuario_id) FROM usuarios WHERE email='{$email}'"
);
$uReg = mysql_fetch_array($sql_usuario_check);
$eReg = mysql_fetch_array($sql_email_check);
$usuario_check = $uReg[0];
$email_check = $eReg[0];
if (($usuario_check > 0) || ($email_check > 0)){
if ($usuario_check > 0){
echo "<div style='position: absolute; top: 220px; left: 750px; z-index: 1'>Usuário já cadastrado !</div>";
unset($usuario);
}
else
if ($email_check > 0){
echo "<div style='position: absolute; top: 220px; left: 750px; z-index: 1'>Email já cadastrado</div>";
unset($email);
}
include "cadastro.php";
}else{
/* Se passarmos por esta verificação ilesos é hora de
finalmente cadastrar os dados. Vamos utilizar uma função para gerar a senha de
forma randômica*/
function makeRandomPassword(){
$salt = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 7){
$num = rand() % 33;
$tmp = substr($salt, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
$senha_randomica = makeRandomPassword();
$senha = md5($senha_randomica);
// Inserindo os dados no banco de dados
$info = htmlspecialchars($info);
$sql = mysql_query(
"INSERT INTO usuarios
(usuario, email, senha, data_cadastro)
VALUES
('$usuario', '$email', '$senha', now())")
or die( mysql_error()
);
if (!$sql){
echo "Ocorreu um erro ao criar sua conta, entre em contato.";
}else{
$usuario_id = mysql_insert_id();
// Enviar um email ao usuário para confirmação e ativar o cadastro!
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "From: Teu Domínio - Webmaster<email@teusite.com.br>";
$subject = "Confirmação de cadastro - teusite.com.br";
$mensagem = "Prezado {$nome} {$sobrenome},<br />
Obrigado pelo seu cadastro em nosso site, <a href='http://www.teusite.com.br'>
http://www.teusite.com.br</a>!<br /> <br />
Para confirmar seu cadastro e ativar sua conta em nosso site, podendo acessar à
áreas exclusivas, por favor clique no link abaixo ou copie e cole na barra de
endereço do seu navegador.<br /> <br />
<a href='http://www.teusite.com.br/ativar.php?id={$usuario_id}&code={$senha}'>
http://www.teusite.com.br/ativar.php?id={$usuario_id}&code={$senha}
</a>
<br /> <br />
Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo
efetuado o login com os seguintes dados abaixo:<br > <br />
<strong>Usuario</strong>: {$usuario}<br />
<strong>Senha</strong>: {$senha_randomica}<br /> <br />
Obrigado!<br /> <br />
Webmaster<br /> <br /> <br />
Esta é uma mensagem automática, por favor não responda!";
mail($email, $subject, $mensagem, $headers);
echo "".$usuario." Foi enviado para seu email - ( ".$email." ) um pedido de
confirmação de cadastro, por favor verifique e sigas as instruções!";
}
}
}
?>Carregando comentários...