Boa noite galera, estou com uma dúvida em relação a um sistema de login com sessão. Fiz a classe de usuário e a função de login e até agora tudo certo. Agora preciso verificar se a sessão realmente está aberta, alguém tem alguma dica ou material de apoio ? segue a classe e as funções
class usuarioLogado
{
private $con;
private $json;
private $email;
private $senha;
public function __construct()
{
$this->con = new Conexao();
$this->json = new JsonResposta();
}
public function setEmail($email)
{
$this->email = $email;
}
public function setSenha($senha)
{
$this->senha = md5($senha);
}
public function logaUsuario()
{
try {
$pdo = $this->con->conecta();
$buscaUsuario = $pdo->prepare("SELECT u.email, u.senha FROM usuarios AS u WHERE email=:email AND senha = :senha;");
$buscaUsuario->bindValue(":email", $this->email, PDO::PARAM_STR);
$buscaUsuario->bindValue(":senha", $this->senha,PDO::PARAM_STR);
$buscaUsuario->execute();
if ($buscaUsuario->rowCount() == 0) {
$json = $this->json->json_response("200","Usuário ou senha inválidos");
echo $json;
} else {
session_start();
$rst = $buscaUsuario->fetch();
$_SESSION["logado"] = "sim";
$_SESSION["email"] = $rst["email"];
$json = $this->json->json_response("200","Logado com sucesso",$_SESSION['email']);
echo $json;
}
} catch (PDOException $e) {
echo "Erro" . $e->getMessage();
}
}
public function usuarioEstaLogado($email)
{
$this->email = $email;
$pdo = $this->con->conecta();
$buscaUsuario = $pdo->prepare("SELECT email FROM usuarios WHERE email=:email;");
$buscaUsuario->bindParam(":email", $this->email, PDO::PARAM_STR);
$buscaUsuario->execute();
$resultado = $buscaUsuario->fetch();
$_SESSION['email'] = $resultado['email'];
$json = $this->json->json_response("200","Bem vindo".$_SESSION['email']);
echo $json;
}
public function sairUsuario()
{
session_destroy();
$json = $this->json->json_response("200","Logout efetuado com sucesso");
echo $json;
}
}