Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eae galera
seguinte
estou criando uma area restrita para um site e estou com um problema
eu entro com um suario e senha e acesso normalmente a area restrita, porém se eu abrir uma nova aba na mesma janela e ir para a pagina inicial da area restrita, tenho que fazer o login novamente...
e se eu digitar o endereço de uma pagina da restrita consigo visualisa-la tranquilo
gostaria de saber o que eu tenho que fazer para quando o usuario abri uma nova aba e acessar a area restrita, ser redirecionado para pagina inicial sem precisar de refazer o login
caso seja necessario, esse e o codigo que valida a sessão:
<?php
@session_start();
// inclui o arquivo de configuração do sistema
include "Config/config_sistema.php";
// verifica se a variavel existir
if(isset($_SESSION['login_usuario']) and isset($_SESSION['senha_usuario'])) {
// se existie as sessões coloca os valores em uma varivel
$login_usuario = $_SESSION['login_usuario'];
$senha_usuario = $_SESSION['senha_usuario']; $erro = urlencode("Você não esta logado!");
header("Location: ../index.php");
exit;
}
// verifica se as variaveis estão atribuidas
if(!(empty($login_usuario) or empty($senha_usuario))) {
// se estiverem atribuidos vamos ver se exist o login
$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
if(mysql_num_rows($consulta) == 1) {
// se o usuario exostir vamos verificar a senha
if($senha_usuario != mysql_result($consulta,0,"Senha")) {
// se a senha está correta vamos apagar a
// sessão que existia mas erra a errada
unset($_SESSION['login_usuario']);
unset($_SESSION['senha_usuario']);
$erro = urlencode("Você não esta logado!");
header("Location: ../index.php");
exit;
}
} else {
unset($_SESSION['login_usuario']);
unset($_SESSION['senha_usuario']);
$erro = urlencode("Você não esta logado!");
header("Location: ../index.php");
exit;
} $erro = urlencode("Você não esta logado!");
header("Location: ../index.php");
exit;
}
mysql_close($conn);
?>>
Na verdade, seria mais ideal você setar as sessões depois que o cara logar no site. Tipo, você verifica no banco se o cara existe e a senha ta certa, ok, esta tudo certo, agora você cria uma sessão pra ele, vamos supor que você armazene o id dele.
<?php
$_SESSION['id'] = $user->user_id;
foi mau a demora :natalbiggrin:
onde eu coloco essa parte? (tem 2 meses que estou aprendendo PHP e ainda voo em algumas coisas :closedeyes: )
Tipo, depois da validação (a qual verifica se o login e a senha estão corretos), você antes de redirecionar ele, você armazena o ID dele dentro da session, sacas? claro que você da um start na session antes, e depois você simplesmente seta ela. exemplo, vamos supor que dentro da sua tabela no banco de dados você tenha uma coluna chamada usuario_id, ficaria assim.
<?php
/* aqui vem as validações pro cara se logar, depois que tudo estiver certinho e retornar
os dados do banco, você tera o ID em mãos, agora é só você passar ele pra dentro da sessão*/
session_start();
$_SESSION['id'] = $usuario['usuario_id']; // usuario_id é sua coluna na tabelaTenta assim:
<?php
if (!isset($_SESSION['login_usuario']) || !isset($_SESSION['senha_usuario'])){
header("Location:/sistema/login/login.php");
exit;
}else{
//seu conteudo ou pagina/redirecionamento
}
?>
Abraço.>
Tipo, depois da validação (a qual verifica se o login e a senha estão corretos), você antes de redirecionar ele, você armazena o ID dele dentro da session, sacas? claro que você da um start na session antes, e depois você simplesmente seta ela. exemplo, vamos supor que dentro da sua tabela no banco de dados você tenha uma coluna chamada usuario_id, ficaria assim.
<?php
/* aqui vem as validações pro cara se logar, depois que tudo estiver certinho e retornar
os dados do banco, você tera o ID em mãos, agora é só você passar ele pra dentro da sessão*/
session_start();
$_SESSION['id'] = $usuario['usuario_id']; // usuario_id é sua coluna na tabela
Funcionou o/
vlw ai cara!!!!
Na verdade, seria mais ideal você setar as sessões depois que o cara logar no site. Tipo, você verifica no banco se o cara existe e a senha ta certa, ok, esta tudo certo, agora você cria uma sessão pra ele, vamos supor que você armazene o id dele.
Na página de login, você poderia colocar o seguinte.<?php
/ verifica se existe a sessao de id, se existir, é por que ele ja esta logado então manda ele pra index /
Claro que sua sessão pode ser bem melhor que isso, mas basicamente é isso que você tera que fazer man.