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:
<?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

Edilson Santiago

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;
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