Fórum Tá tudo certo (eu acho), mas não grava no DB #618209
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)