public function verificaAcesso($pagina) { $continua = true; if ($pagina != 'sair') { if ($this->opcao != 'visitante') { $continua = $this->dao->verificaLogado($this->opcao, $this->idOpcao, $this->idSessao); if ($continua) { $paginaExiste = $this->dao->paginaExiste($pagina); if ($paginaExiste) { if ($pagina != 'busca' && $pagina != '404' && $pagina != 'validar') { $visualizaPagina = $this->dao->visualizaPagina($this->idLog, $pagina); } } else { $visualizaPagina = $this->dao->visualizaPagina($this->idLog, '404: ' . $pagina); Transacao::close(); header('Location: ' . Constantes::$enderecoCompleto . '404'); die; } } else { header('Location: ' . Constantes::$enderecoCompleto . 'sair'); die; } } if ($continua) { $continua = $this->dao->verificaAcesso($pagina, $this->opcao); } } return $continua; }
private function inicia() { $this->getPagina(); $login = new LoginVerifica($_SESSION); $paginaSel = $this->getPaginaUpper(); $paginaSel = $paginaSel == '404' ? 'NaoExiste' : $paginaSel; try { //Abre a Transacao Transacao::open(); //CHAMAR A página if ($login->verificaAcesso($this->pagina)) { require_once $paginaSel . '.php'; $temp = new $paginaSel(); $temp->setQuery($this->queryString); $temp->executa(); } else { $chamada = $this->pagina; if ($paginaSel == 'Login' || $paginaSel == 'Loga') { $chamada = Constantes::$padrao; $endereco = Constantes::$enderecoCompleto; header('Location: ' . $endereco . $chamada); } else { require_once 'Sair.php'; $sair = new Sair(); $sair->setNova($chamada); $sair->executa(); } } //Fecha a conexão e faz o commit das queries Transacao::close(); } catch (Exception $e) { //Caso dê erro, faz o rollback Transacao::rollback(); //Escreve o erro na tela //Futuramente, inserir o erro no banco! echo 'Erro: ' . $e->getMessage(); } }