mruoppolo 14 Denunciar post Postado Janeiro 22, 2016 Olá, tudo bem? Eu estou fazendo um sistema que precisa do registro de usuário e no caso eu não queria que os usuários fizessem 2 cadastros com o mesmo e-mail, então eu coloquei no arquivo que registra o usuário a seguinte instrução: //Valida o E-Mail $buscar_email = mysqli_query($conn,"select * from tb_user where strUserEmail='$email'"); $conta_email = mysqli_num_rows($buscar_email); if($conta_email>=1 && $perfilTipo==1){ header("Location ../../registrar-profissional.php?erroEmail=true"); }elseif($conta_email>=1 && $perfilTipo==2){ header("Location ../../registrar-cliente.php?erroEmail=true"); } O engraçado é que ele esta buscando normalmente esta encontrando o e-mail já cadastrado no sistema, tanto é que dentro do if se eu coloco alguma mensagem pra depurar, como por exemplo: if($conta_email>=1 && $perfilTipo==1){ echo "Email cadastrado"; exit; header("Location ../../registrar-profissional.php?erroEmail=true"); }elseif($conta_email>=1 && $perfilTipo==2){ echo "Email cadastrado"; exit; header("Location ../../registrar-cliente.php?erroEmail=true"); } Ele printa a mensagem de e-mail cadastrado tranquilamente, só não esta executando o comando header(); ai vem uma parte mais engraçada ainda, no final do arquivo tem um comando header para redirecionar o usuário para a escolha do plano que deseja assinar e adivinha?? Lá ele funciona normalmente, você tem ideia do que pode estar acontecendo?? P.s.: Já tentei substituir o header() pelo window.location do javascript e também não funcionou Muito obrigado :D Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Janeiro 22, 2016 header("Location: registrar-profissional.php?erroEmail=true"); Faltou dois pontos depois do location e no endereço você passa o nome do arquivo após o domínio ou passa a url completa http://exemplo.com.br/arquivo.php Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 22, 2016 Caramba cara, eu to desde ontem olhando pra esse código e não me liguei nisso, kkkkk, valeu mesmo rockrgo Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 22, 2016 Eu coloquei aqui os 2 pontos, porém, mesmo assim ele esta deixando passar, não sei o que pode estar acontecendo Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Janeiro 22, 2016 posta como está seu código Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 22, 2016 <?php header('Content-Type: text/html; charset=UTF-8'); require_once('connection.php'); require_once('../functions/email-functions.php'); //Pegar os dados $nomeCompleto = $_POST['nome']." ".$_POST['sobrenome']; $email = $_POST['email']; $senha = md5($_POST['senha']); if(isset($_POST['hash'])){ $hash = $_POST['hash']; } $perfilTipo = $_POST['perfilTipo']; //Valida o E-Mail $buscar_email = mysqli_query($conn,"select * from tb_user where strUserEmail='$email'"); $conta_email = mysqli_num_rows($buscar_email); if($conta_email>=1 && $perfilTipo==1){ header("Location ../../registrar-profissional.php?erroEmail=true"); }elseif($conta_email>=1 && $perfilTipo==2){ header("Location ../../registrar-cliente.php?erroEmail=true"); } //Criar a conta $criar_conta = mysqli_query($conn,"insert into tb_user (strUserNome,strUserEmail,strUserSenha) values ('$nomeCompleto','$email','$senha')"); $userid = mysqli_insert_id($conn); //Criar o Perfil $criar_perfil = mysqli_query($conn, "insert into tb_perfil (intUserID,strPerfilTipo) values ('$userid','$perfilTipo')"); $perfilid = mysqli_insert_id($conn); //Enviar e-mail de confirmação de conta $nome = $_POST['nome']; $confirmar = confirmaEmail($nome,$email,$senha); //Cria a sessão session_start(); $_SESSION['clienteValida'] = 1; $_SESSION['clienteID'] = $userid; $_SESSION['perfilID'] = $perfilid; //Registra a Categoria do Perfil $registra_categoria = mysqli_query($conn,"insert into tb_perfil_categoria (intPerfilID,intProjetoCategoriaID) values ('$perfilid','$categoriaid')"); //Redireciona o usuário if(!isset($_POST['hash']) && $perfilTipo == 1){ header("Location: ../../escolher-plano.php"); }elseif(isset($_POST['hash']) && $perfilTipo == 1){ header("Location: assinar-plano.php?hash=".$_POST['hash']); }elseif($perfilTipo == 2){ header("Location: ../../confirmacao.php"); } ?> Este é o arquivo registrar-user.php E este é o formulário: <?php include('includes/configs/connection.php'); ?> <!DOCTYPE html> <html lang="pt_br" class="body-full-height"> <head> <!-- META SECTION --> <title>Acesso ao Sistema | Lumihost Freelancers</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="icon" href="favicon.ico" type="image/x-icon" /> <!-- END META SECTION --> <!-- CSS INCLUDE --> <link rel="stylesheet" type="text/css" id="theme" href="css/theme-white.css"/> <!-- EOF CSS INCLUDE --> </head> <body> <div class="login-container"> <div class="login-box animated fadeInDown"> <div class="login-logo"></div> <div class="login-body"> <?php if(isset($_GET['erroEmail']) && $_GET['erroEmail'] == 'true'){ echo '<div class="alert alert-danger" role="alert"> <strong>Oops!</strong> Este e-mail já esta cadastrado em nosso sistema. </div>'; } ?> <div class="login-title"><strong>Olá,</strong> crie sua conta de profissional</div> <form action="includes/configs/registrar-user.php" class="form-horizontal" method="post"> <div class="form-group"> <div class="col-md-6"> <input type="text" class="form-control" required name="nome" placeholder="Nome"/> </div> <div class="col-md-6"> <input type="text" class="form-control" required name="sobrenome" placeholder="Sobrenome"/> </div> </div> <div class="form-group"> <div class="col-md-12"> <input type="text" class="form-control" required name="email" placeholder="E-mail"/> </div> </div> <div class="form-group"> <div class="col-md-12"> <input type="password" class="form-control" required name="senha" placeholder="Senha"/> </div> </div> <div class="form-group"> <div class="col-md-12"> <input type="password" class="form-control" required name="senha2" placeholder="Repita a Senha"/> </div> </div> <div class="form-group"> <div class="col-md-12"> <select name="categoria" class="form-control"> <option default class="form-control">Selecione a Categoria</option> <?php $bc = mysqli_query($conn,"select * from tb_projeto_categoria"); $contagem = mysqli_num_rows($bc); while($cat=mysqli_fetch_assoc($bc)){ ?> <option value="<?php echo $cat['intProjetoCategoriaID']; ?>" class="form-control"><?php echo $cat['strProjetoCategoriaNome']; ?></option> <?php } ?> </select> </div> </div> <div class="form-group"> <div class="checkbox text-center"> <label style="color:#fff;"> <input type="checkbox" name="termos" id="termos" required> Declaro que aceito os <a href="http://lumihost.com.br/site/termos-de-uso" target="_Blank">Termos de Uso</a>. </label> </div> </div> <div class="form-group"> <div class="col-md-12"> <input type="hidden" name="perfilTipo" value="1"> <?php if(isset($_GET['hash'])){ ?> <input type="hidden" name="hash" value="<?php echo $_GET['hash']; ?>"> <?php } ?> <button class="btn btn-info btn-block">Criar Conta</button> </div> </div> <!-- LOGIN COM REDES SOCIAIS <div class="login-or">OU</div> <div class="form-group"> <div class="col-md-12"> <button class="btn btn-info btn-block btn-facebook"><span class="fa fa-facebook"></span> Facebook</button> </div> </div> --> <div class="login-subtitle"> Já possui uma conta? <a href="index.php">Clique aqui</a> para acessá-la. </div> </form> </div> <div class="login-footer"> <div class="pull-left"> © 2016 Lumihost </div> <div class="pull-right"> <a href="http://lumihost.com.br/site/#como-funciona" target="_Blank">Como Funciona</a> | <a href="http://lumihost.com.br/site/termos-de-uso" target="_Blank">Termos de Uso</a> | <a href="http://lumihost.com.br/site/#fale-conosco" target="_Blank">Fale Conosco</a> </div> </div> </div> </div> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Janeiro 22, 2016 Pelo seu código postado o trecho da validação de email está da mesma forma. posta só o trecho que estava com problema corrigido da forma que te falei. Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 22, 2016 Ah sim, então eu coloquei desta forma, mas mesmo assim não resolveu: //Valida o E-Mail $buscar_email = mysqli_query($conn,"select * from tb_user where strUserEmail='$email'"); $conta_email = mysqli_num_rows($buscar_email); if($conta_email>=1 && $perfilTipo==1){ header("Location: https://app.lumihost.com.br/registrar-profissional.php?erroEmail=true"); }elseif($conta_email>=1 && $perfilTipo==2){ header("Location: https://app.lumihost.com.br/registrar-cliente.php?erroEmail=true"); } Ai depois eu dei uns ctrl z pra voltar para o ../../ no lugar da url inteira, porque eu estou desenvolvendo em localhost Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Janeiro 22, 2016 O que ocorre? ele não redireciona? antes do if coloca var_dump($conta_email, $perfilTipo); exit(); e posta o que printa na tela. Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 22, 2016 Ele aparece o seguinte: int(13) string(1) "1" Mas assim, ele esta entrando no loop, como eu falei, se eu coloco uma mensagem para depurar o código, tipo um: echo "Ja cadastrado"; exit; Dentro do if ele printa certinho, ele esta entrando no laço só não esta respeitando o header() muito estranho Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Janeiro 22, 2016 seus erros estão todos habilitados? já tentou printar algo depois do header? Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 22, 2016 Não habilitei aquele error_reporting, mas já printei algo depois do header e ele funciona normalmente inclusive o header no final da página ta funcionando normalmente também, vo colocar aqui o error_reporting pra ver, nem lembrava dele, rsrs Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 22, 2016 Olha só que coisa estranha, eu coloquei o error_reporting no arquivo mas ele não mostrou nada, ai eu comentei os redirecionamentos do final do arquivo, apenas deixei comentado esta parte aqui: /*Redireciona o usuário if(!isset($_POST['hash']) && $perfilTipo == 1){ header("Location: ../../escolher-plano.php"); }elseif(isset($_POST['hash']) && $perfilTipo == 1){ header("Location: assinar-plano.php?hash=".$_POST['hash']); }elseif($perfilTipo == 2){ header("Location: ../../confirmacao.php"); }*/ E adivinha?? Ele funcionou normalmente, rsrs, porém eu preciso disso ai no final do script Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 22, 2016 Cara criei aqui uma condição a mais, tipo, quando ele encontra o e-mail no banco de dados ele gera uma variavel chamada $erroEmail e coloca o valor 1 ai no último redirecionamento eu coloquei no if dele esse $erroEmail e quando for o valor 1 ele redireciona de volta para o registro de usuário e funcionou perfeitamente. Valeu rockrgo Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Janeiro 22, 2016 é cara na verdade estava passando algo despercebido. Depois que você coloca o header location ele continua executando o restante do arquivo então o correto seria colocar um exit() após o header. Assim ele não continuaria executando o arquivo e redirecionaria sua página normalmente. Compartilhar este post Link para o post Compartilhar em outros sites
mruoppolo 14 Denunciar post Postado Janeiro 22, 2016 Então eu até havia tentado isso, mas quando eu fiz dessa forma, ele toda vez que lia o script e via o exit(); ja finalizava o script, mesmo o e-mail não estando cadastrado no sistema, eu achei muito estranho isso, ai, rsrs Compartilhar este post Link para o post Compartilhar em outros sites