Jump to content
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>

 

Edited by Gabriel Heming
adicionar marcação de código

Share this post


Link to post
Share on other 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/

 

Share this post


Link to post
Share on other 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. 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By landerbadi
      Olá pessoal
       
      Tenho uma tabela mysql chamada “poesias” com os seguintes campos (id,autor,poesia) e uma outra tabela chamada “palavras” com os seguintes campos (id,palavra,ocorrencias).
       
      Na tabela poesias eu cadastrei uma serie de poesias, e na tabela palavras eu cadastrei uma lista de palavras.
       
      Eu preciso fazer com que o php pegue as palavras cadastradas na tabela palavra e grave no campo ocorrências as quantidades de vezes que determinada palavra aparece na tabela poesias.
       
      Alguém sabe como fazer isso?
       
    • By TeixeiraRamos
      Por favor,
      Tenho uma Procedure que facilitará muito a inserção da "data_ano_liturgico" e os respectivos  "dias_semanas "
      O resultado seria preencher o campo "data_ano_liturgico" iniciando em 2021-11-21 até 2022-12-31 com os respectivos dias da semana, como já informei. 
      Editando a procedure:
      tem em:
      Nome da rotina: adicionar_data
      Tipo:  PROCEDURE
      Parâmetros :  Direção: IN , Nome: data_inicio, Tipo: DATE
                                               IN,, Nome: Intervalo, Tipo: INT
      BEGIN DECLARE var_data DATE; DECLARE var_dia VARCHAR(50); DECLARE contador INT DEFAULT 0; SET var_data = data_inicial; SET var_dia = DAYNAME(data_inicial); WHILE contador < intervalo DO INSERT INTO tb_ano_liturgico(data_ano_liturgico, dias_semanas) VALUES (var_data, var_dia); SET contador = contador + 1; SET var_data = DATE_ADD(data_inicial, INTERVAL contador DAY); SET var_dia = DAYNAME(var_data); END WHILE; END $$ DELIMITER ; Call adicionar_datas(‘2021-11-21’, 399); Qual o erro que apresenta:
       
      Não sei onde estou errando.
    • By Kefatif
      Prezados, bom dia.
       
      Preciso da ajuda dos Srs!
       
      Não estou conseguindo localizar o erro no arquivo abaixo.
       
      Ao clicar no botão ele me envia a mensagem: "Erro ao registrar estoque !"
       
      Poderiam me ajudar?
       
      Agradeço desde já pela ajuda.
       
      <?php include_once 'autenticacao.php'; include_once'../../conexao.php'; include_once '../../funcoes.php'; include_once '../../decodepost.php'; if( !isset($_POST["cont"]) or !isset($_SESSION["cnes"]) ){ ECHO "Erro"; }else{ $cnes = $_SESSION["cnes"]; $idusuario = $_SESSION["idusuario"]; $cont = $_POST["cont"]; $sql = "insert into LESAO_ESTOQUE values(null,curdate(), '".$cnes."',".$idusuario.")"; if(mysqli_query($con, $sql)){ $idestoque = mysqli_insert_id($con); $coberturas = 0; for($i=1 ; $i<=$cont; $i++){ if(isset($_POST[$i])){ if($_POST[$i]<=0){ }else{ $qtd = $_POST[$i]; $sqlqtd = "insert into LESAO_REL_ESTOQUE_COBERTURAS values(".$idestoque.", ".$i.", ".$qtd.", ".$idusuario.")"; if(mysqli_query($con, $sqlqtd)){ $coberturas = $coberturas+1; } } } } $grav = "Registrado estoque de ".$coberturas." coberturas !"; }else{ $grav = "Erro ao registrar estoque !"; } //5- Fechar a conexão mysqli_close($con); ?> <script> alert('<?php echo $grav; ?>'); location.href="estoque-registrar.php"; </script> <?php } ?>  
    • By tetsuo
      Bom dia pessoal!
      Me orientem aqui, se puderem:
      Estou usando mysql.
      Preciso ordenar Eventos conforme a sequência:
       
      1) os que estão acontecendo: status = started
         (ordem crescente datetime)
      2021-12-07 07:00:00 | started 2021-12-07 08:00:00 | started 2021-12-07 09:00:00 | started  
      2) os que vão acontecer: status = created
         (ordem crescente datetime)
      2021-12-07 13:00:00 | created 2021-12-07 14:00:00 | created 2021-12-07 15:00:00 | created  
      3) os que passaram da data, mas não foram iniciados
         (ordem decrescente datetime)
      2021-12-07 06:00:00 | created 2021-12-07 05:00:00 | created 2021-12-07 04:00:00 | created  
      4) os finalizados: status = finished
         (ordem decrescente datetime)
      2021-12-06 12:00:00 | finished 2021-12-05 17:00:00 | finished 2021-12-04 19:00:00 | finished Estava tentando com case when 
      order by CASE WHEN E.status = 'started' THEN 1 WHEN E.status = 'created' && eventDateTime >= NOW() THEN 2 WHEN E.status = 'created' && eventDateTime < NOW() THEN 3 WHEN E.status = 'finished' THEN 4 ELSE 5 END Mas não sei combinar o THEN 1 + eventDateTime ASC ou DESC
      Será que é possível resolver numa querie só?
      Ou vou ter que fazer 4 consultas distintas?
    • By Negrito
      Olá Pessoal, 
       
      Converti o banco de dados de uma app em ASP Classico de MSSQL para MySQL para redução de custos e percebi que alguns componentes ou recursos não estão mais funcionando devido a não compatibilidade com o MySQL , como por exemplo a função : RecordCount
       
      Já consegui converter e atualizar 95% de aplicação para rodar com o MySQL, mas tem 1 item que esta tirando meu sono e após dias pesquisando, resolvi pedir ajuda.
       
      Segue o meu codigo abaixo , onde estou com problema no resultado dessa operação:
       
      <%
      ...
      Set RS = Server.CreateObject("ADODB.Recordset")
      RS.CursorLocation = 3
      RS.CursorType = 3
      RS.ActiveConnection = Cn
      RS.Open strSQL, Cn, 3, 3
      RS.PageSize = 25
      RS.CacheSize = RS.PageSize
      intPageCount = RS.PageCount
      intRecordCount = RS.RecordCount
          If NOT (RS.BOF AND RS.EOF) Then
      If CInt(intPage) > CInt(intPageCount) Then intPage = intPageCount
          If CInt(intPage) <= 0 Then intPage = 1
              If intRecordCount > 0 Then
                  RS.AbsolutePage = intPage
                  intStart = RS.AbsolutePosition
                  If CInt(intPage) = CInt(intPageCount) Then
                      intFinish = intRecordCount
                  Else
                      intFinish = intStart + (RS.PageSize - 1)
                  End if
              End If
          If intRecordCount > 0 Then
              For intRecord = 1 to RS.PageSize
          QntExibicoes = QntExibicoes + Rs.fields("views")
      ...
      %>
       
       
      Já percebi que a função RecordCount não pode ser usada com o MySQL ou pelo menos não é compativel.
       
      A paginação esta funcionando ! 
      Porem , não consigo fazer ele calcular a quantidade de linhas (rows) do MySQL com a função RecordCount e acredito que possa ter alguma outra função que não esta compativel , mas como não conheço MySQL , não posso afirmar.
       
      Enfim, algum pode me dar uma luz ?
       
      Desde já agradeço pela atenção.
       
      Obrigado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.