Estou desenvolvendo um sistema de login onde o usuário após logado passa por redirecionamento, já que cada usuário tem sua página especifica no sistema e não pode ser feito uso de busca dos dados desse usuário por banco de dados, porque cada página tem seu próprio layout, porem estou tendo dificuldades.
O sistema deveria funcionar assim:
1° O cliente coloca seu login e senha
2° O sistema faz a verificação normal no banco de dados desse usuário se confirmado a existência do usuário no db ele envia o id do usuário para uma página de redirecionamento
3° Essa página de redirecionamento pega o id do usuário e compara aos existentes no "case", localizando o id ele redireciona para a página que estiver indicada
<?php
// Verifica se houve POST e se o usuário ou a senha é(são) vazio(s)
if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {
header("Location: index.php"); exit;
}
// Tenta se conectar ao servidor MySQL
mysql_connect('localhost', 'root', '') or trigger_error(mysql_error());
// Tenta se conectar a um banco de dados MySQL
mysql_select_db('database') or trigger_error(mysql_error());
$usuario = mysql_real_escape_string($_POST['usuario']);
$senha = mysql_real_escape_string($_POST['senha']);
// Validação do usuário/senha digitados
$sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1";
$query = mysql_query($sql);
if (mysql_num_rows($query) != 1) {
// Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado
echo "Login inválido!"; exit;
} else {
// Salva os dados encontados na variável $resultado
$resultado = mysql_fetch_assoc($query);
// Se a sessão não existir, inicia uma
if (!isset($_SESSION)) session_start();
// Salva os dados encontrados na sessão
$_SESSION['UsuarioID'] = $resultado['id'];
$_SESSION['UsuarioNome'] = $resultado['nome'];
$_SESSION['UsuarioNivel'] = $resultado['nivel'];
// Redireciona o visitante
header("Location: redirecionar.php"); exit;
}
?>
<?php
// A sessão precisa ser iniciada em cada página diferente
if (!isset($_SESSION)) session_start();
$nivel_necessario = 2;
// Verifica se não há a variável da sessão que identifica o usuário
if (!isset($_SESSION['UsuarioID']) OR ($_SESSION['UsuarioNivel'] < $nivel_necessario)) {
// Destrói a sessão por segurança
session_destroy();
// Redireciona o visitante de volta pro login
header("Location: index.php"); exit;
}
?>
<h1>Página restrita</h1>
<p>Olá, <?php echo $_SESSION['UsuarioNome']; ?>!</p>
página da ana.php
<?php
// A sessão precisa ser iniciada em cada página diferente
if (!isset($_SESSION)) session_start();
$nivel_necessario = 3;
// Verifica se não há a variável da sessão que identifica o usuário
if (!isset($_SESSION['UsuarioID']) OR ($_SESSION['UsuarioNivel'] < $nivel_necessario)) {
// Destrói a sessão por segurança
session_destroy();
// Redireciona o visitante de volta pro login
header("Location: index.php"); exit;
}
?>
<h1>Página restrita</h1>
<p>Olá, <?php echo $_SESSION['UsuarioNome']; ?>!</p>
Já passei dias buscando fazer esse processo funcionar, sem sucesso!
Pergunta
Mayck May
Bom dia,
Estou desenvolvendo um sistema de login onde o usuário após logado passa por redirecionamento, já que cada usuário tem sua página especifica no sistema e não pode ser feito uso de busca dos dados desse usuário por banco de dados, porque cada página tem seu próprio layout, porem estou tendo dificuldades.
O sistema deveria funcionar assim:
1° O cliente coloca seu login e senha
2° O sistema faz a verificação normal no banco de dados desse usuário se confirmado a existência do usuário no db ele envia o id do usuário para uma página de redirecionamento
3° Essa página de redirecionamento pega o id do usuário e compara aos existentes no "case", localizando o id ele redireciona para a página que estiver indicada
Segue os códigos
index.php
validar.php redirecionar.php página do alex.php página da ana.phpJá passei dias buscando fazer esse processo funcionar, sem sucesso!
Agradeço desde já pela força de todos
Sds
Maycke
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.