Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou criando um site com 3 níveis de acesso: um administrativo, outro para professores e outro para alunos
o administrativo até que está normal mas quando tento dividir o login termino esbarrando com barios problemas.
vou mandar os codigos para ilustrar melhor meu problema.
UsuarioDAO:
public function AutenticarUsuario($usu = '', $senha = '', $permissao = ''){
try {
if($permissao == 1){
$sql = "SELECT cod, nome FROM usuario WHERE status = 1 AND permissao = :permissao AND usuario = :usuario AND senha = :senha";
$param = array(
":permissao" => $permissao,
":usuario" => $usu,
":senha" => $senha
);
}else{
$sql = "SELECT cod, nome FROM usuario WHERE status = 1 AND usuario = :usuario AND senha = :senha";
$param = array(
":usuario" => $usu,
":senha" => $senha
);
}
$dt = $this->pdo->ExecuteQueryOneRow($sql, $param);
// var_dump($dt);
if ($dt != null) {
$usuario = new Usuario();
$usuario->setCod($dt["cod"]);
$usuario->setNome($dt["nome"]);
return $usuario;
} else {
return null;
}
} catch (PDOException $ex) {
if ($this->debug) {
echo "ERRO: {$ex->getMessage()} LINE: {$ex->getLine()}";
}
return null;
}
}
UsuarioAction
case 4:
$usu = filter_input(INPUT_POST, "txtUsuario", FILTER_SANITIZE_STRING);
$senha = filter_input(INPUT_POST, "txtSenha", FILTER_SANITIZE_STRING);
$permissao = 2;
$usuario = $usuarioController->AutenticarUsuario($usu, $senha, $permissao);
if (!empty($usuario)) {
$_SESSION["cod"] = $usuario->getCod();
$ex = explode(" ", $usuario->getNome());
$_SESSION["nome"] = $ex[0];
echo "ok";
} else {
echo "invalid";
}
break;
}
O problema é quando tendo exibir a permissão que começa a dar problemas;
print_r($_SESSION['permissao']);Desculpe pela minha falta de objetividade.
O que eu estou precisando fazer é
mais ou menos uma coisa assim.
além dos dos valores
$usuario->setCod($dt["cod"]);
$usuario->setNome($dt["nome"]);
Também apareça o valor
$usuario->setNome($dt["permissao"]);
tentei fazer do seguinte modo
$sql = "SELECT cod, nome, permissao FROM usuario WHERE status = 1 AND usuario = :usuario AND senha = :senha" AND permissao =:permissao;
$param = array(
":usuario" => $usu,
":senha" => $senha
);
}
$dt = $this->pdo->ExecuteQueryOneRow($sql, $param);
// var_dump($dt);
if ($dt != null) {
$usuario = new Usuario();
$usuario->setPermissao($dt["Permissao"])
$usuario->setCod($dt["cod"]);
$usuario->setNome($dt["nome"]);
return $usuario;
} else {
return null;
}
mas não deu certo.
Espero ter sido mais um pouco especifico.Decupem minha insistência, mas só estou precisando disso para terminar meu trabalho
Boa tarde.
Desculpe amigo.. mas está um pouco confuso entender oque você precisa. Lança algum erro?
Aparentemente o codigo está correto.. só aqui que pode está incorreto:
$dt["Permissao"]
use como foi definido no SQL:
$dt["permissao"]
Falou falou e não disse nada.. Qual é o problema? Qual msg de erro?