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<?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; } ?>redirecionar.php<? $dbh = mysql_connect("localhost","usuario","senha"); mysql_select_db("banco de dados",$dbh); $id = $_POST["id"]; $usuario = $_POST["usuario"]; $select = ("SELECT * FROM 'cliente' WHERE id='$id',$dbh"); $resultado = mysql_query($select); $linhas = count($resultado); if ($linhas > 0){ session_start(); $_SESSION["id_usuario"] = $id; $_SESSION["usuario_usuario"] = $usuario; $login = $_POST["id"]; switch($login) { case '1': header ("location: alex.php"); break; case '2': header ("location: ana.php"); break; default header ("location: erro.php"); }} mysql_close($dbh); ?>página do alex.php<?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!
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.