Problema ao restringir uma página.
Olá amigos do php estou com uma duvida com relação ao código em MVC que restringi a página com sessões depois que o usuário for logado no sistema.
Minha duvida e o seguinte, dependendo de cada usuário que será logado ele irá ser reportado para sua respectiva página é lá queria que ele se tornasse restrita e imprimiria uma mensagem na tela dando boas vindas ao perfil tal e usuário tal, mas não sei de que forma irei fazer esta sessão, pois eu coloquei para carregar a sessão dentro do switch case de cada pagina carregada pelo perfil mais só que ele aparece na mesma pagina login e não e isso que eu queria. Queria q ele aparece na outra pagina já logada dizendo Olá perfil tal e o usuário tal correspondente àquela página.
modelo : Usuario.php
<?php
class usuario {
private $id_usuario;
private $nome;
private $email;
private $perfil;
private $usuario;
private $senha;
public function getId_usuario() {
return $this->id_usuario;
}
public function getNome() {
return $this->nome;
}
public function getEmail() {
return $this->email;
}
public function getPerfil() {
return $this->perfil;
}
public function getUsuario() {
return $this->usuario;
}
public function getSenha() {
return $this->senha;
}
public function setId_usuario($id_usuario) {
$this->id_usuario = $id_usuario;
return $this;
}
public function setNome($nome) {
$this->nome = $nome;
return $this;
}
public function setEmail($email) {
$this->email = $email;
return $this;
}
public function setPerfil($perfil) {
$this->perfil = $perfil;
return $this;
}
public function setUsuario($usuario) {
$this->usuario = $usuario;
return $this;
}
public function setSenha($senha) {
$this->senha = $senha;
return $this;
}
}
DAO : DAOLogar.php
<?php
class daoLogar {
private $cnx;
function __construct() {
try {
$this->cnx = new PDO('mysql:host=localhost;port=3306;dbname=usuarios', 'root', '');
} catch (PDOException $ex) {
echo '<div class="alert-danger">' . $ex->getMessage() . '</div>';
}
}
public function verificarLogin(usuario $Usuario) {
$array = array();
try {
$sql = "SELECT * FROM tbusuario WHERE usuario =? AND senha =? LIMIT 1";
$campo = $this->cnx->prepare($sql);
$campo->bindParam(1, $Usuario->getUsuario(), PDO::PARAM_STR);
$campo->bindParam(2, $Usuario->getSenha(), PDO::PARAM_STR);
$campo->execute();
while ($row = $campo->fetch(PDO::FETCH_ASSOC)) {
$array[$row['id_usuario']]['id_usuario'] = $row['id_usuario'];
$array[$row['id_usuario']]['perfil'] = $row['perfil'];
$array[$row['id_usuario']]['usuario'] = $row['usuario'];
$array[$row['id_usuario']]['senha'] = $row['senha'];
}
return $array;
} catch (PDOException $ex) {
echo '<div class="alert-danger">' . $ex->getMessage() . '</div>';
}
}
}
Controle: controleLogar.php
<?php
require_once 'modelo/usuario.php';
require_once 'dao/daoLogar.php';
class controleLogar {
protected $ObjUsuario;
protected $ObjDaoLogar;
protected $ctl;
public function __construct() {
$this->ObjUsuario = new usuario();
$this->ObjDaoLogar = new daoLogar();
}
public function ctlVerificarLogin() {
if (isset($_POST["btnEntrar"])) {
$this->ObjUsuario->setUsuario($_POST['txtusuario']);
$this->ObjUsuario->setSenha($_POST['txtsenha']);
$this->ctl = $this->ObjDaoLogar->verificarLogin($this->ObjUsuario);
if (empty($_POST["txtusuario"]) || (empty($_POST["txtsenha"]))) {
echo '<div class="alert-danger"> Por Favor Preencha o Campo em Branco!!!!!!</div>';
} else if ($this->ObjUsuario->getUsuario() == 'admin' || $this->ObjUsuario->getSenha() == 'admin') {
echo '<div class="alert-admMaster">Administrador Master Logado com Sucesso!!!!!!</div>';
echo "<meta HTTP-EQUIV='refresh' CONTENT='8;URL=visaoAdministrador/visaoCadastrarUsuario.php'>";
} else if (!$this->ctl) {
echo '<div class="alert-warning">Usuário e Senha estão Incorretas!!!!!!</div>';
} else {
foreach ($this->ctl as $key => $value) {
switch ($value['perfil']) {
case 'Administrador':
foreach($this->ctl as $key =>$value){
session_start();
echo 'Olá'. $_SESSION['perfil'] = $value['perfil'].' '. $_SESSION['usuario'] = $value['usuario'];
}
echo '<div class="alert-administrador">Administrador Logado com Sucesso!!!!!!</div>';
echo "<meta HTTP-EQUIV='refresh' CONTENT='8;URL=visaoAdministrador/visaoMenuAdministrador.php'>"; //será pagina restrita.
break;
case 'Cliente':
echo '<div class="alert-cliente">Cliente Logado com Sucesso!!!!!!</div>';
echo "<meta HTTP-EQUIV='refresh' CONTENT='8;URL=visaoCliente/visaoMenuCliente.php'>";//será pagina restrita.
break;
case 'Socio':
echo '<div class="alert-socio">Socio Logado com Sucesso!!!!!!</div>';
echo "<meta HTTP-EQUIV='refresh' CONTENT='8;URL=visaoSocio/visaoMenuSocio.php'>";//será pagina restrita.
break;
}
}
}
}
}
}
Visao: VisaoLogar.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PRINCIPAL:</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<link rel="stylesheet" type="text/css" href="css/alerta.css">
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script language="javascript" type="text/javascript" src="js/JQuery.mim.js"></script>
<script language="javascript" type="text/javascript" src="js/fechar.js"></script>
<script language="javascript" type="text/javascript" src="js/bootstrap.js"></script>
</head>
<body>
<div class="topo">
<div class="letras">
<div id="m">
<?php
require_once 'controle/controleLogar.php';
$cs = new controleLogar();
$cs->ctlVerificarLogin();
?>
</div>
</div>
</div>
<div class="cabecalho">
<form method="post" class="letras alinhaLogin">
<table width="688" border="0">
<tr>
<td width="58" align="center" valign="middle">Usuário:</td>
<td width="144" align="center" valign="middle"><input name="txtusuario" type="text" size="40" placeholder="Digite Usuário:" class="form-control"></td>
<td width="46" align="center" valign="middle">Senha:</td>
<td width="144" align="center" valign="middle"><input name="txtsenha" type="password" size="10" placeholder="Digite Senha:" class="form-control"></td>
<td width="94" align="center" valign="middle"><input name="btnEntrar" type="submit" class="btn btn-info" value="Entrar:"> </td>
</tr>
</table>
</form>
</div>
</body>
</html>Discussão (4)
Carregando comentários...