I need help with PHP language

-2

So I'm having trouble with a part of my code, as it's too big I'll post only the part that is in error:

<?php
   try{
    $entrar = $_POST["entrar"];
    $cpf = $_POST["cpf"];
    $senha = $_POST["senha"];
    /*Conexão com o banco de dados*/
    $pdo = new pdo('tipo_do_banco:host=servidor;dbname=nome_do_banco','nome_do_usuário','senha_do_usuario');
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    /*Verificando se o usuário existe na tabela já*/
    var_dump($entrar);
    if($entrar==true){
    $validacao = $pdo->prepare('SELECT * FROM aluno WHERE cpf = :cpf AND senha = :senha LIMIT 1');
    $validacao ->bindValue('nome'); (não sei se está certo, queria pegar o nome do cara da tabela sql)
    $validacao ->bindParam(":cpf",$cpf,PDO::PARAM_STR);
    $validacao ->bindParam(":senha",$senha ,PDO::PARAM_STR);
    $validacao ->execute();
    /*Se a validação achar algo, vai direto para área do aluno*/
    $retorno = $validacao->FetchAll();
    if(count($retorno)>= 1){
        $_SESSION['nome'] = $nome;
        $_SESSION["cpf"] = $cpf;
        $_SESSION["senha"] = $senha;
        header('Location: alguma-area.php');
        exit();
    }else{
        unset ($_SESSION["cpf"]);
        unset ($_SESSION["senha"]);
        echo('Cpf ou senha inválidos');
    }
    }
    }catch(PDOException $error){
    echo 'Error: ' . $error->getMessage();
    }
?>

This IF does not execute, blocking all other commands (it has more code).

I would also like to know if it is possible that through this select I can get the name of the table face right, how would it be done? Maybe using $validacao->bindValue('id');

    
asked by anonymous 31.08.2018 / 16:18

1 answer

1

I changed some things that were wrong in your code, try this way I put it down.

<?php


//error_reporting(E_ALL);
//ini_set('display_errors', 1);

if (session_status() !== PHP_SESSION_ACTIVE) {
    session_start();
}

if ($_SERVER['REQUEST_METHOD'] == "POST") {

    $entrar = $_POST["entrar"];
    $cpf = filter_var($_POST["cpf"], FILTER_SANITIZE_SPECIAL_CHARS);
    $senha = filter_var($_POST["senha"], FILTER_SANITIZE_SPECIAL_CHARS);
    $senha = md5($senha);

    try{
        $pdo = new \PDO('mysql:host=127.0.0.1;dbname=banco;port=3306','user','pass');
        $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

        if(isset($cpf) && isset($senha)){
            $validacao = $pdo->prepare('SELECT * FROM aluno WHERE cpf = :cpf AND senha = :senha LIMIT 1');
            $validacao->bindParam(":cpf", $cpf, PDO::PARAM_STR, 20);
            $validacao->bindParam(":senha", $senha, PDO::PARAM_STR, 255);
            $validacao->execute();
            $retorno = $validacao->fetch(PDO::FETCH_ASSOC);
        }
    }catch(PDOException $error){
        echo 'Error: ' . $error->getMessage();
    }

    if(count($retorno) >= 1){
        $_SESSION['nome'] = $retorno['nome'];
        $_SESSION['cpf'] = $retorno['cpf'];
        $_SESSION['senha'] = $retorno['senha'];
        header('Location: alguma-area.php');
        exit();
    }else{
        echo('Cpf ou senha inválidos');
    }
}
?>
    
31.08.2018 / 19:07