Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou com um sério problema em validação de SESSÃO em meu site.
A principio o login à minha area administrativa funciona normalmente, ele valida a primeira sessão e redireciona para a index da area administrativa. Simulando que o link para minha área administrativa é: www.dominio.com.br/adm/index.php
A página HOME da área adm é www.dominio.com.br/adm/home.php
Porém eu tenho um link que acessa uma outra pasta, por exemplo www.dominio.com.br/adm/pasta/cadastro.php
E é no momento que eu faço o primeiro acesso à essa pasta que a pagina fica tentando carregar, até dar um erro no Navegador:
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.pralexfonseca.com.br/imagens/erro.jpg&key=f1ce59d7866ce2359487503b72cb0f49c1ae6cf04967d97bee5ee8c4ca2422e3" alt="erro.jpg" />
Depois se eu volto pro link www.dominio.com.br/adm
faço o login novamente, aí ele acessa o link www.dominio.com.br/adm/pasta/cadastro.php Normalmente.
O que pode estar acontecendo de errado?
Na verdade cara, o comando que estou dando nas páginas é o session_start() e faço a validação na página que nao houve a sessão para que ele redirecione para o LOGIN.
session_start();
é pra iniciar uma sessão
ai tu criar os nomes da sessão que pode ser em session ow cookies
tipo
$_SESSION['login'];
e em cookies
$_COOKIES['login'];
noosa agora que fui ver aqui uma coisa a sua mensagem de erro fala
Este problema pode às vezes ser causado pela desativação se recusando a aceitar COOKEIS
procurei aqui e achei umas respotas
1°respotas:Este problema algumas vezes pode ser causado pelo bloqueio ou recusa em aceitar cookies.
2°:Você deve ter ativado o Bloqueador de pop-up, isso é muito bom para evitar publicidade, e quando o pop-up está ativado, impede que você consiga ir para alguns sites que sejam duvidosos a nível de segurança.
O teu Firewall deve estar ativado, e isso impede de a gente ir ver todos os sites, você pode desligar o Firewall, mas isso é muito perigoso.
Quando nós visitamos um site o computador cria o cookie, para no futuro ser muito mais rápido ter acesso a essa página e quando nós eliminamos os cookies, acontece que muitas vezes é negado o acesso a esse site.
3°Tenta desativar o pop-up.
Procur usar o McAfee- Site advisor, ele acusa qualquer site perigoso, através de cores, verde, amarelo, cinza e vermelho. esse último nem abra o site que consulta.
Boa sorte.
4°Minhas opnião use $_SESSION e não $_COOKIES use COOKIES soh pra salva tema de site ao alguma coisa assim. e seus poblema iram acabar
Cara, desativei o bloqueio de pop-up e na pagina que eu tento acessar que sempre dá erro eu coloquei o seguinte comando:
session_start();
$_SESSION['user'];
Porém mesmo assim dá erro.
Recapitulando, o login é feito no dominio www.dominio.com.br/gerenciador/index.php
Feito o login ele vai pra página www.dominio.com.br/gerenciador/principal.php, onde tem o código que faz a validação do usuário e inicia a sessão:
$_SESSION['user'] = $user;
$_SESSION['name_user'] = $linha['login_nome'];
$_SESSION['id_usuario'] = $linha['login_id'];
E no cabeçalho, que é chamado em todas as páginas tem o código:
session_start();
$usuario = $_SESSION['user'];
if (!isset($usuario)){
header("location: index.php");
}
O ERRO está dando quando acesso a página que faz parte de outra pasta, porém, que chama esse cabeçalho acima, o link é: www.dominio.com.br/gerenciador/pasta/subpasta/index.php
Quando clico nessa página ele carrega e apresenta aquele erro, e quando eu faço o login novamente, ele acessa essa pagina.. sempre assim, em qualquer navegador...
Espero ter ajudado com mais essas informações
tente usar ob_start();
em cima de session_start();Troque:
header('Location: index.php');
por
header('Location: /index.php');
Pessoal, deu certo, é isso mesmo.
ob_start();
session_start();
$usuario = $_SESSION['user'];
if (!isset($usuario)){
header('Location: /index.php');
}
Muito Obrigado!
Posso só complementar rsrs :rolleyes:
$_SESSION['name_user'] = $linha['login_nome'];
$_SESSION['id_usuario'] = $linha['login_id'];
tenta usar assim eu trabalho muito com session e acho que assim agiliza mais o trabalho
$_SESSION['login']['id_usuario'] = $linha['login_id'];
$_SESSION['login']['name_user'] = $linha['login_nome'];
assim fica como session LOGIN global a tudo e você passa as informações nos indices
na validação das pagina e tal
@session_start();
if(empty($_SESSION['login'])){
header("Location /index.php");
}>
Posso só complementar rsrs :rolleyes:
$_SESSION['name_user'] = $linha['login_nome'];
$_SESSION['id_usuario'] = $linha['login_id'];
tenta usar assim eu trabalho muito com session e acho que assim agiliza mais o trabalho
$_SESSION['login']['id_usuario'] = $linha['login_id'];
$_SESSION['login']['name_user'] = $linha['login_nome'];
assim fica como session LOGIN global a tudo e você passa as informações nos indices
na validação das pagina e tal
@session_start();
if(empty($_SESSION['login'])){
header("Location /index.php");
}
Keven, ao invés da arroba, você pode verificar se já existe uma sessão:
session_id() or session_start();
>
Keven, ao invés da arroba, você pode verificar se já existe uma sessão:
session_id() or session_start();
lega essa não sabia eu utilizava direto.
Valeu Galera!
você tá usando cookies?