Tá tudo certo (eu acho), mas não grava no DB
11/06/2022
0
Amigos, estou criando um sistema de login com PHP e PDO. Já revirei de ponta a ponta o código. Ele está lendo o BD, pq quando tento cadastrar um e-mail já cadastrado, ele retorna o echo "email já cadastrado". Então, tudo indica que está conectando, mas quando tento cadastrar um novo, ele retorna echo "cadastro realizado com sucesso", mas não grava nada. Vou no BD, e não está lá. Vou postar o código. Se alguém puder dar uma força para encontrar o erro... abraços e muito obrigado.
Página de cadastro:
Página Classes de Usuário:
Página de cadastro:
<?php require_once 'classes/usuarios.php'; $u = new Usuario; ?> <htm lang="pt-br"> <head> <meta charset="utf-8"> <title>SGI - CADASTRO DE USUÁRIO</title> <link rel="stylesheet" href="css/stilo.css"> <body> <div id="corpo-form"> <h2>SGI - CADASTRO DE USUÁRIO</h2> <form method="POST"> <input type="text" name="nome" placeholder="Nome Completo" maxlength="220"> <input type="email" name="email" placeholder="Usuário" maxlength="520"> <input type="password" name="senha" placeholder="Senha"maxlength="12"> <input type="password" name="confsenha" placeholder="Confirmar Senha"> <input type="submit" name="postar" value="INSERIR"> </form> </div> <?php if(isset($_POST['postar'])) { $nome = addslashes($_POST['nome']); $email = addslashes($_POST['email']); $senha = addslashes($_POST['senha']); $confsenha = addslashes($_POST['confsenha']); if(!empty($nome) && !empty($email) && !empty($senha) && !empty($confsenha)) { $u->conectar("nome_do_meu_BD","localhost","usuario_do_meu_BD","senha_do_meu_BD"); if($u->msgErro == "") { if($senha == $confsenha){ if($u->cadastrar($nome, $email, $senha)) { echo "Cadastro realizado com sucesso!"; } else { echo "Email já cadastrado no sistema!"; } } else { echo "Senhas digitadas não correspondem."; } } else { echo "Erro:" .$u->msgErro; } } else { echo "Por favor, preencha todos os campos."; } } ?> </body> </head> </html>
Página Classes de Usuário:
<?php Class Usuario { private $pdo; public $msgErro = ""; public function conectar($nome, $host, $usuario, $senha) { global $pdo; try { $dsn = 'mysql:host=' . $host . '; dbname=' . $nome; $options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8']; $pdo = new PDO($dsn, $usuario, $senha, $options); } catch(PDOException $e) { $msgErro = $e->getMessage(); } } public function cadastrar($nome, $email, $senha, $situacoe_id, $niveis_acesso_id, $created, $modified) { global $pdo; $sql = $pdo->prepare("SELECT id FROM usuarios WHERE email = :e"); $sql->bindValue(":e",$email); $sql->execute(); if($sql->rowCount() > 0) { return false; } else { $created = date('d/m/y'); $modified = date('d/m/y'); $sql = $pdo->prepare("INSERT TO usuarios ($nome, $email, $senha, $situacoe_id, $niveis_acesso_id, $created, $modified) VALUES (:n, :a, :p, :s, :n, :c, :m)"); $sql->bindValue(":n",$nome); $sql->bindValue(":a",$email); $sql->bindValue(":p",md5($senha)); $sql->bindValue(":s",1); $sql->bindValue(":n",1); $sql->bindValue(":c",$created); $sql->bindValue(":m",$modified); $sql->execute(); return true; } } public function logar($email, $senha) { global $pdo; $sql = $pdo->prepare("SELECT id FROM usuarios WHERE email = :e AND senha = :p"); $sql->bindValue(":e",$email); $sql->bindValue(":p",md5($senha)); $sql->execute(); if($sql->rowCont() > 0) { $dado = $sql->fetch(); session_start(); $_SESSION["id"] = $dado["id"]; return true; } else { return false; } } } ?>
Edilson Santiago
Curtir tópico
+ 0
Responder
Posts
13/06/2022
Gxf
voce fez:
$created = date('d/m/y');
$modified = date('d/m/y');
$sql = $pdo->prepare("INSERT TO usuarios ($nome, $email, $senha, $situacoe_id, $niveis_acesso_id, $created, $modified) VALUES (:n, :a, :p, :s, :n, :c, :m)");
$sql->bindValue(":n",$nome);
$sql->bindValue(":a",$email);
$sql->bindValue(":p",md5($senha));
$sql->bindValue(":s",1);
$sql->bindValue(":n",1);
$sql->bindValue(":c",$created);
$sql->bindValue(":m",$modified);
$sql->execute();
return true;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
o correto nao seria?
$created = date('d/m/y');
$modified = date('d/m/y');
$sql = $pdo->prepare("INSERT INTO usuarios ($nome, $email, $senha, $situacoe_id, $niveis_acesso_id, $created, $modified) VALUES (:n, :a, :p, :s, :n, :c, :m)");
$sql->bindValue(":n",$nome);
$sql->bindValue(":a",$email);
$sql->bindValue(":p",md5($senha));
$sql->bindValue(":s",1);
$sql->bindValue(":n",1);
$sql->bindValue(":c",$created);
$sql->bindValue(":m",$modified);
$sql->execute();
return true;
$created = date('d/m/y');
$modified = date('d/m/y');
$sql = $pdo->prepare("INSERT TO usuarios ($nome, $email, $senha, $situacoe_id, $niveis_acesso_id, $created, $modified) VALUES (:n, :a, :p, :s, :n, :c, :m)");
$sql->bindValue(":n",$nome);
$sql->bindValue(":a",$email);
$sql->bindValue(":p",md5($senha));
$sql->bindValue(":s",1);
$sql->bindValue(":n",1);
$sql->bindValue(":c",$created);
$sql->bindValue(":m",$modified);
$sql->execute();
return true;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
o correto nao seria?
$created = date('d/m/y');
$modified = date('d/m/y');
$sql = $pdo->prepare("INSERT INTO usuarios ($nome, $email, $senha, $situacoe_id, $niveis_acesso_id, $created, $modified) VALUES (:n, :a, :p, :s, :n, :c, :m)");
$sql->bindValue(":n",$nome);
$sql->bindValue(":a",$email);
$sql->bindValue(":p",md5($senha));
$sql->bindValue(":s",1);
$sql->bindValue(":n",1);
$sql->bindValue(":c",$created);
$sql->bindValue(":m",$modified);
$sql->execute();
return true;
Responder
Clique aqui para fazer login e interagir na Comunidade :)