Conecta ao BD, não dá erro, mas não grava

31/01/2023

0

Olá, amigos, meu código conecta normalmente ao BD, faz tudo certinho, não retorna erro, mas não grava. O que pode ser?

Página do formulário e do php:
<?php
include_once 'connect.php';
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content-"width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Cadastro de Usuário</title>
    <style>
        body{font-family: Arial, Helvetica, sans-serif}
        .content{display:flex;justify-content: center}
        .contato{width:100%; max-width: 500px;}
        .form{display: flex; flex-direction: column}
        .field{padding:10px; margin-bottom:15px; border:1px solid #DDD; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px}
        .field2{padding:10px; margin-bottom:15px; border:1px solid #ADD8E6; background-color:#ADD8E6; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px}
        .field2:hover{padding:10px; margin-bottom:15px; border:1px solid #87CEFA; background-color:#87CEFA;  border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-weight:bold;}
    </style>
<script>
 function confereSenha(){
     const senha = document.querySelector('input[name=senha]');
     const confirma_senha = document.querySelector('input[name=confirma_senha');
     
     if (confirma_senha.value === senha.value) {
         confirma_senha.setCustomValidity('');
     } else {
         confirma_senha.setCustomValidity('As senhas digitadas não conferem! Elas precisam ser iguais.');
     }
     
 }
</script>

</head>
<body>
    <section class="content">
        
        <div class="contato">

        <h2>Cadastro</h2>
        Por favor, preencha todos os dados para criar um novo usuário.<br><br>
        <?php 
        $dados = filter_input_array(INPUT_POST, FILTER_DEFAULT);
        
        if (!empty($dados['CadUsuario'])) {
            var_dump($dados);
            $query_usuario = "INSERT INTO usuario (nome, email, senha, situacoe_id, niveis_acesso_id, created, modified) VALUES ('" . $dados['nome'] . "', '" . $dados['email'] . "', '" . $dados['senha'] . "', '" . $dados['situacoe_id'] . "', '" . $dados['niveis_acesso_id'] . "', '" . $dados['created'] . "', '" . $dados['modified'] . "') ";
            $cad_usuario = $conn->prepare($query_usuario);
            $cad_usuario->execute();
        }
        ?>
        
        
        
        <form name="cad_usu" class="form" method="POST" action="">
            <input class="field" name="nome" placeholder="Nome" required>
            <input class="field" type="email" name="email" placeholder="E-mail" required>
            <input class="field" type="password" name="senha" placeholder="Senha" required onchange='confereSenha();'>
            <input class="field" type="password" name="confirma_senha" placeholder="Confirmar Senha" required onchange='confereSenha();'>
            <input type="hidden" name="situacoe_id" value="1">
            <input type="hidden" name="niveis_acesso_id" value="1">
            <input type="hidden" name="created" value='<?php echo date("Y-m-d H:i:s"); ?>'>
            <input type="hidden" name="modified" value='<?php echo date("Y-m-d H:i:s"); ?>'>
            <input class="field2" type="submit" name="CadUsuario" value"Cadastrar Usuário">
            <input class="field2" type="reset" value"Limpar Formulário">
            
        </form>
        </div>
        
    </section>
     </div>   
</body>
</html>


E meu arquivo de conexão:
<?php 

    $host = "localhost";
    $user = "usuario";
    $pass = "*****";
    $dbname = "banco";
    
    
    $conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass);
  
?>
Edilson Santiago

Edilson Santiago

Responder

Posts

31/01/2023

Fernando C

sua conexão está errada; troque essa linha:
$conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass);

por essa:
$conn = new PDO ("mysql:host=$host;dbname=$dbname",$user,$pass);

veja aqui como exibir mensagens de erro:
https://forum.imasters.com.br/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/
Responder

31/01/2023

Edilson Santiago

sua conexão está errada; troque essa linha:
$conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass);

por essa:
$conn = new PDO ("mysql:host=$host;dbname=$dbname",$user,$pass);

veja aqui como exibir mensagens de erro:
https://forum.imasters.com.br/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/


Não resolveu, amigo. Fiz como sugeriu, depois tentei uma nova abordagem, com o código abaixo, mas o problema continua.

<?php 

    $username = "meu usuario";
    $password = "minha senha";

  try {
  $conn = new PDO('mysql:host=localhost;dbname=MeuBanco', $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}
  
  
?>
Responder

31/01/2023

Edilson Santiago

sua conexão está errada; troque essa linha:
$conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass);

por essa:
$conn = new PDO ("mysql:host=$host;dbname=$dbname",$user,$pass);

veja aqui como exibir mensagens de erro:
https://forum.imasters.com.br/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/


Não resolveu, amigo. Fiz como sugeriu, depois tentei uma nova abordagem, com o código abaixo, mas o problema continua.

<?php 

    $username = "meu usuario";
    $password = "minha senha";

  try {
  $conn = new PDO('mysql:host=localhost;dbname=MeuBanco', $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}
  
  
?>


Consegui achar o erro. Erro de digitação. Estava $cad_ususario, mas deveria ser $cad_usuario.

O mais fácil é sempre o mais difícil.

Obrigado!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar