Ir para conteúdo
Duke73

O mysql não recebe os dados da tabela "Usuarios" recebe apenas da tabela "Contas"

Recommended Posts

Bom dia turma !!

Estou com um probleminha em um formulário de cadastro que recebe via email o E-mail do usuário. Ele entra na página para finalizar o seu cadastro, preenche os dados e envia, mas no banco só está gravando os dados da tabela "Contas" e não da de "Usuarios" também, assim quando ele vai se logar, não consegue. Na tabela "Contas" não não gera o campo "usuario_id".

Algué pode me ajudar ?! Agradeço

 

Segue o codigo abaixo:

<?php
require_once('includes/config.php');
if (isset($_POST['acao']) && $_POST['acao'] == "cadastro"){
    if(True){
        $email = addslashes($_POST['u_email']);
        $sql = "SELECT email FROM Contas WHERE email = '{$email}'";
        $query = $conn->query($sql);
        $usuario = addslashes($_POST['u_usuario']);
        $sql = "SELECT usuario FROM Usuarios WHERE usuario = '{$usuario}'";
        $query = $conn->query($sql);
        if($query->num_rows){
           header('Location: login.php?error=username_used');
        } else {
          $email = addslashes($_GET['email']);
          $senha = md5($_POST['u_senha']);
          $nome = addslashes($_POST['u_nome']);
          $usuario = addslashes($_POST['u_usuario']);
          $nascimento = addslashes($_POST['u_nascimento']);
          $cep = str_replace('-', '', $_POST['u_cep']);
          $sexo = addslashes($_POST['u_sexo']);  
          $termos = addslashes($_POST['u_termos']);        
          $sql = "INSERT INTO Usuarios VALUES (null, '{$nome}', '{$usuario}', '{$nascimento}', {$cep}, {$sexo});";
                $query = $conn->query($sql);
                $id = $conn->insert_id;
                $sql = "UPDATE Contas SET senha = '{$senha}', usuario_ID = '$id', ativo = 1  WHERE email = '{$email}';";
                //$sql = "UPDATE Contas SET senha='{$senha}', usuario_ID='{$id}' WHERE email='{$email}';";
                //$sql = "INSERT INTO Contas VALUES (null, '{$email}', '{$senha}', {$tipo}, {$id}, null, 0);";
                if($query = $conn->query($sql)){
                    header("Location: login.php?error=account_created");
                } else {
                    header('Location: confirm.php?error=account_no_created');
                }
        }
    }
}

?>

<?php
 
// busca a biblioteca recaptcha
require_once "recaptchalib.php";
// sua Secret Key
$secret = "6LffqW4UAAAAANBM0v2ex8l0uO4Ueed3ar4ebHxz";
 
// resposta vazia
$response = null;
 
// verifique a chave secreta
$reCaptcha = new ReCaptcha($secret);
 
// se submetido, verifique a resposta
if($_POST){
  if ($_POST["g-recaptcha-response"]) {
  $response = $reCaptcha->verifyResponse(
          $_SERVER["REMOTE_ADDR"],
          $_POST["g-recaptcha-response"]
      );
  }
}
?>
<!DOCTYPE html>
<html>
<head>
    <base href="">
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta property="og:image" content="<?php echo 'imgs/'.$sorteio['imagem']; ?>">
    <meta property="og:image:type" content="image/jpeg">
    <meta property="og:image:width" content="1024">
    <meta property="og:image:height" content="1024">
    <title><?php echo $sorteio['nome']; ?> - <?php echo TITLE; ?></title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
    <link rel="shortcut icon" href="imgs/favicon.ico" />
    <link rel="stylesheet" type="text/css" media="screen" href="assets/css/bootstrap.min.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="assets/css/main.css" />
    <style type="text/css">
        card {
            border: none !important;
        }
    </style>
</head>
<body class="homepage is-preload">
    <div id="page-wrapper">
    <?php require_once 'includes/nav.php'; ?>
    
       <main style="margin-top: 60px;">
        <div class="container">
            <div class="row">
                <div class="card col-12">
                    <div class="card-body">
                        <h5 class="w-100 text-center card-title">
                            Concluir Registo
                        </h5>
                        <hr>
                        <div class="row justify-content-md-center">
                            <!-- Registro Formulário -->
                            <div class="col-md-6 col-lg-6 col-md-12 col-xs-12">
                                <div id="formUsuario">
                                    <form method="POST"  value="cadastro">
                                        <input type="hidden" name="acao" value="cadastro"/>
                                        <div class="form-group">
                                            <label for="emailUsuario">E-mail</label>
                                            <input type="email" value="<?php echo $_GET['email']; ?>" class="form-control" id="emailUsuario" aria-describedby="emailHelp" placeholder="Insira seu e-mail" name="u_email" disabled>
                                        </div>
                                        <div class="form-group">
                                            <label for="senhaUsuario">Senha</label>
                                            <input type="password" class="form-control" id="senhaUsuario" aria-describedby="senhaHelp" placeholder="Insira sua senha" name="u_senha" required>
                                        </div>
                                        <div class="form-group">
                                            <label for="nomeUsuario">Nome Completo</label>
                                            <input type="text" class="form-control" id="nomeUsuario" aria-describedby="nomeHelp" placeholder="Insira seu nome" name="u_nome" required>
                                        </div>
                                        <div class="form-group">
                                            <label for="nomedeUsuario">Nome de Usuário</label>
                                            <input type="text" class="form-control" id="nomedeUsuario" aria-describedby="usuarioHelp" placeholder="Insira seu nome de usuário" name="u_usuario" required>
                                        </div>
                                        <div class="form-group">
                                            <label for="dataUsuario">Data de Nascimento</label>
                                            <input type="date" class="form-control" id="dataUsuario" aria-describedby="nascimentoHelp" name="u_nascimento" required>
                                        </div>
                                        <div class="form-group">
                                            <label for="CEPUsuario">Código Postal</label>
                                            <input type="text" minlength="4" maxlength="4" class="form-control" id="CEPUsuario" aria-describedby="cepHelp" placeholder="Ex.: XXXX ( Apenas os 4 primeiros dígitos )" name="u_cep" required>
                                        </div>
                                        <div class="form-group">
                                            <label for="selectSexo">Sexo</label>
                                            <select class="form-control" id="selectSexo" name="u_sexo" required>
                                                <option checked>Selecione aqui</option>
                                                <option value="0">Masculino</option>
                                                <option value="1">Feminino</option>
                                            </select>
                                        </div>
                                        <div class="form-group">
                                            <label class="selectTermos">Aceita os Nossos Termos de Usos? Leia os nossos Termos <a href="termos_utilizacao.php">Aqui</a></label>
                                            <select class="form-control" id="selectSexo" name="u_termos" required>
                                                <option checked>Selecione aqui</option>
                                                <option value="0">Aceito</option>
                                                <option value="1">Não Aceito</option>
                                            </select>
                                         </div>
                                        <div class="form-group">
                                            <label >Captcha</label>
                                            <div class="g-recaptcha" data-sitekey="6LffqW4UAAAAAJ984jA-Pt5n1sU65Wk6wSyCx-Uk"></div>
                                        </div>
                                        
                                      <hr>
                                        

                                        <button type="button" id="action" name="tipo" value="usuario" class="btn btn-primary" onclick="participar()">Curtir Página</button>
                                        <button type="button" id="btn-cadastrar" name="tipo" value="usuario" class="btn btn-primary">Criar Conta</button>
                                  </form>
                                </div>
                            <script src='https://www.google.com/recaptcha/api.js?hl=pt-BR'></script>                         
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</main>
<br><br><br><br>
<?php require_once 'includes/footer.php'; ?>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script src="assets/js/bootstrap.min.js"></script>


    <script>
  var init = 0;
    function participar(){
        if(init == 0){
            var popup = window.open("<?php echo LINK1; ?>", 'newwindow', 'width=900,height=600');
        }
        popup.onunload = function(){
            if(init == 1){
                $('#action').html('Da Gosto Sorte Macaca');
                $('#action').attr('class', 'btn btn-primary');
                init++;
            } else {
              $('#btn-cadastrar').attr('class', 'btn btn-primary text-white');
              $('#btn-cadastrar').attr('type', 'submit');
              $('#action').remove();
//             var c = 30;
//             var q = setInterval(function(){
//                 c = c - 1;
//                 if(c == 0){
//                     $('#btn-cadastrar').html('Registar');
//                     $('#btn-cadastrar').attr('type', 'submit);
//                     $('#btn-cadastrar').attr('class', 'btn btn-primary text-white mb-3');
//                     $('#action').remove();
//                     clearInterval(q);
//                 } else {
//                     $('#btn-cadastrar').html('Participar! ('+c+')');
//                 }
//             }, 1000);
            }
        }
    }
 
  </script>
  </div>
  </body>
</html>

 

Editado por Gabriel Heming
adicionar marcação de código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ative a exibição de erros (orientação 3)  e debug a query (orientação 5) como informado no seguinte tópico:

https://forum.imasters.com.br/topic/542539-atenção-orientações-e-regras-do-fórum-de-php/

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, 

Verifique se o campo "usuario_id" da tabela de Usuarios esta com habilitado com "AutoIncremento - AI", se não estiver pode ser esse o seu problema, provavelmente seu usuario_id é uma PK e não pode receber vazio. 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Caio_Lourençon
      Olá estou desenvolvendo um projeto utilizando a extensão MySQLi, e nisso aproveitando para utilizar algumas funções orientada a objeto! Gostaria de tirar umas dúvidas em relação a listagem de dados, são duas perguntas:   1) Utilizar a função foreach() ao invés de um while() com a função fetch_array() dentro, tem uma listagem mais rápida ou mais lenta? Pois com ambas consigo trazer os dados, No momento estou utilizando a foreach por ser mais rápida de se digitar.
      2) Utilizo muitas listagens de tabelas diferentes na mesma página sempre chamando um novo SELECT, seria melhor criar uma função com um SELECT dentro para eu sempre reutiliza-lá ou não iria mudar muita coisa em questão de desempenho?
       
      Agradeço qualquer informação.
    • Por gersonab
      Procuro uma revenda de hospedagem confiável, ja adianto que uolhost e locaweb estão fora dos planos.
    • Por Jefferson andre
      Ola, estou criando um contador de acessos diario mas nao funciona, a tabela tem o campo data no formato date e o campo contador int(10)
       
      A ideia eh verificar a data e se nao existir incluir na tabela, se existir adicionar ao contador
       
      Parece que o erro esta no formato da data, nem manualmente consigo incluir na tabela via localhost ou na hospedagem da google
       
      Agradeço qualquer ajuda
       
      <?php // fazendo uma conexão com o banco de dados include("conexao.php"); // grava a data atual em uma variavel date_default_timezone_set('America/Sao_Paulo'); $date = date('d-m-Y'); //$sql = "SELECT codigo FROM contador"; $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); if (mysqli_num_rows($resultado)== true){ // registro ja existe } else { // resultado nao encontrado entao inserir $sql = "INSERT INTO contador_diario ('data', 'contador') VALUES ('$date', '1')"; if ($arquivo->query($sql) == TRUE) { echo "Data cadastrada com sucesso"; } else { echo "Erro: " . $sql . "<br>" . $arquivo->error; } } // refaz a pesquisa para registrar o contador $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); // igualar a array a uma variavel $linha=mysqli_fetch_array($resultado); $cod_2 = $linha["contador"]+1; // lista a variavel //echo "<font face='Arial'><span class='style14'>$cod_2</span></font>"; $sql = "UPDATE contador_diario SET contador=$cod_2"; if ($arquivo->query($sql) === TRUE) { // echo "Alteração efetuada com sucesso"; } else { // echo "Erro alterando o contador de visitas diario" . mysqli_error($arquivo); } // fecha a conexao mysqli_close($arquivo); ?>  
    • Por gersonab
      Tenho este sql que funciona normal:
      <?php $idtor = (int)$_GET['id_tor']; $dia = $_GET['dia']; $sql3 = "SELECT * FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE data = :dia AND id_torneio = :idtor ORDER BY cantosfim DESC, pontos DESC, cantos DESC"; $stmt = $pdo->prepare($sql3); $stmt->bindParam(':idtor', $idtor); $stmt->bindParam(':dia', $dia); $stmt->execute(); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> porém este outro não retorna nada, nem erro...
      <?php $idtor = (int)$_GET['id_tor']; $consul = "SELECT id_cantos, id_torneio, id_campeonato, SUM(cantosfim) AS cantfin, SUM(pontos) AS pontfin FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE id_tor = :idtor ORDER BY pontfin DESC, cantfin DESC"; $stmt = $pdo->prepare($consul); $stmt->bindValue(':idtor', $idtor); $stmt->execute(); while ($lin = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> não consigo encontrar o erro.
    • Por Alex Dias
      <?php //CONECTA COM O BANCO DE DADOS require_once("adm/conecta.php"); //SQL $sql = "SELECT DISTINCT tb_comentarios.ID_COMENTARIOS, tb_comentarios.DATA_COMENTARIOS, tb_comentarios.NOME_COMENTARIOS, tb_comentarios.COMENTARIOS, tb_respostas.ID_RESPOSTAS, tb_respostas.DATA_RESPOSTAS, tb_respostas.NOME_RESPOSTAS, tb_respostas.RESPOSTAS FROM tb_comentarios, tb_respostas WHERE tb_comentarios.ID_COMENTARIOS = tb_respostas.ID_COMENTARIOS ORDER BY DATA_COMENTARIOS DESC"; $resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta ao banco de dados"); // CHAMA OS DADOS DA TABELA while ($linha=mysql_fetch_array($resultado)) { $id_comentarios = $linha["ID_COMENTARIOS"]; $data_comentarios = $linha["DATA_COMENTARIOS"]; $nome_comentarios = $linha["NOME_COMENTARIOS"]; $email_comentarios = $linha["EMAIL_COMENTARIOS"]; $comentarios = $linha["COMENTARIOS"]; $status = $linha["STATUS"]; $id_artigo = $linha["ID_ARTIGO"]; $id_respostas = $linha["ID_RESPOSTAS"]; $data_respostas = $linha["DATA_RESPOSTAS"]; $nome_respostas = $linha["NOME_RESPOSTAS"]; $email_respostas = $linha["EMAIL_RESPOSTAS"]; $respostas = $linha["RESPOSTAS"]; $status = $linha["STATUS"]; $id_artigo = $linha["ID_ARTIGO"]; $id_comentarios = $linha["ID_COMENTARIOS"]; $data_portugues1= implode("/", array_reverse(explode("-", "$data_comentarios"))); $data_portugues2= implode("/", array_reverse(explode("-", "$data_respostas"))); echo" <table width='1200' align='center' border='0' cellspacing='0' cellpadding='0'> <tr> <td width='100' valign='top'><img src='images/usuario.jpg'></td> <td width='900' valign='top'><p align='left'><font size='3'><strong>$nome_comentarios</strong> dia $data_portugues1</font></p><br><p align='justify'><font size='3'>$comentarios</font><p></td> <td width='200' align='center' valign='middle'><a href='#'><img src='images/responder.jpg' bordeer='0'></a></td> </tr> </table> "; echo"<br><br> <table width='1200' align='center' border='0' cellspacing='0' cellpadding='0'> <tr> <td width='100' valign='top'>&nbsp;</td> <td width='100' valign='top'><img src='images/usuario2.jpg'></td> <td width='800' valign='top'><p align='left'><font size='3'><strong>$nome_respostas</strong> dia $data_portugues2</font></p><br><p align='justify'><font size='3'>$respostas</font><p></td> <td width='200' align='center' valign='middle'><a href='#'><img src='images/responder.jpg' bordeer='0'></a></td> </tr> </table> <br><br><br><br>"; }//FECHA FOR ?> Boa tarde amigos, estou batendo cabeça aqui com meu Blog, meu Blog tem duas tabelas MySQL uma chamada tb_comentarios para armazenasr os comentários dos artigos postados, a outra tabela é chamada de tb_respostas para armazenar as respostas desses comentários dos usuários. Está tudo ok imprimindo os comentários e respostas na tela bem legal, o único problema é que os comentários estão duplicando, as respostas estão ok, mas os comentários estão duplicando.
       
      O Correto seria o comentário ficar lá e as respostas todas em baixo desse comentário, a questão é que cada resposta dada acaba repetido o comentário, então fica sempre o comentário e a resposta um abaixo do outro, e se tiver três respostas desse comentário, a dupla comentário x resposta se repete por três vezes sendo que o ideal seria só um comentário e as três respostas em baixo, e não consigo determinar que o comentário não se repita, ja usei DISTINCT mas não resolve.

      Segue abaixo o código e anexo o PRINT da tela para vocês entenderem o que tá acontecendo.


       

×

Informação importante

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