[Resolvido] Ajuda com login seguro
Olá!
Estou tentando fazer um sistema de login mais seguro possível, mas de início gostaria de resolver esta questão, aonde este sistema não loga. O cadastro está acontecendo normal, o problema é com o login mesmo. Quero lembrar que este é apenas um exemplo básico para que eu possa aplicar no projeto que desejo, sem contar que os campos que trabalharei, serão estes: email e senha. Aguardo contato e agradeço desde já.
A variável login que recebe a classe açoes que contem o método Login, fica vazia com o var_dump . O arrquivo abaixo recebe o post do formulário.
<?php
require_once 'conexao.php';
require_once 'Acoes.php';
//RECEBE OS DADOS DO FORMULÁRIO
if(isset($_POST["email"]) && isset($_POST["senha"])) {
$email = $_POST["email"];
$senha = $_POST["senha"];
$email = preg_replace('/[^[:alnum:]_.-]/', '', $email);
$senha = sha1($senha . "spbrmitcz");
//Executa a classe de cadastro
$logado = new Acoes();
$login = $logado->Login($email, $senha);
//VERIFICA SE ESTÃO VAZIOS
if (empty($email) || empty($senha)) {
$msg = "Preencha todos os campos!";
//Todos os campos preenchidos
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$msg = "Email ou senha inválidos! Por favor, digite novamente.";
} else {
}
}
}
echo "<pre><h2>".var_dump($login)."</h2></pre>";
?>
***Segue o arquivo da classe Acoes.***
<?php
require_once 'conexao.php';
class Acoes extends Conexao
{
public function exibe(){
$con = $this->pdo->prepare("SELECT * FROM profissionais");
$con->execute();
print_r($con->rowCount());
}
public function Cadastrar($nivel, $status, $nome, $rua, $email, $senha)
{
$check = $this->pdo->prepare("SELECT * FROM profissionais WHERE email=?");
$check->execute(array($email));
if ($check->rowCount() == 0) {
$insert = $this->pdo->prepare("INSERT INTO profissionais (nivel, status, nome, rua, email, senha) VALUES (:nivel, :status,:nome, :rua,:email, :senha)");
$insert->bindValue(":nivel", $nivel, PDO::PARAM_INT);
$insert->bindValue(":status", $status, PDO::PARAM_INT);
$insert->bindValue(":rua", $rua, PDO::PARAM_STR);
$insert->bindValue(":nome", $nome, PDO::PARAM_STR);
$insert->bindValue(":email", $email, PDO::PARAM_STR);
$insert->bindValue(":senha", $senha, PDO::PARAM_STR);
$insert->execute();
}else{
echo "<h1>Já existe um usuário cadastrado com este email!</h1>";
}
}
public function Login($email, $senha){
$datalog = $this->pdo->prepare("SELECT * FROM profissionais WHERE email=? AND senha=?");
$datalog->bindValue(":email", $email);
$datalog->bindValue(":senha", sha1($senha."spbrmitcz"));
$datalog->execute(array($email, $senha));
if ($datalog->rowCount() == 1) {
$datalog->fetchAll(PDO::FETCH_ASSOC);
$_SESSION["email"] = $datalog["email"];
$_SESSION["senha"] = $datalog["senha"];
$_SESSION["nivel"] = $datalog["nivel"];
setcookie("logado", 1);
$log = 1;
}
if (isset($log)){
echo "<h1>Logado com sucesso!</h1>";
}else{
echo "<h1>Digite seu email e senha corretamente!</h1>";
}
}
}
?>Discussão (1)
Carregando comentários...