Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sanchesjs

session

Recommended Posts

Ola pessoal.

Ja Li diversos post aki no forum , ja li o doc do php.net sobre o assunto mas ainda nao consegui resolver o probleminha.

 

vou postar meu script pra vcs verem se esta errado. ele loga tudo so que eu quero proteger as paginas para poderem ser acessadas somente por usuarios logados.

 

so q desse jeito se eu for direto pelo browser em resultado.php ele vai sem precisar logar. entao eu vi nos posts q se deve colocar nos arquivos q queira proteger tal script:

obs. meu form ta no index.php q chama verifica.php como action.

 

Se alguem puder me dar uma mao ae.

 

 

abraços

--- resultado.php

<?session_start();// Se a sessão id não estiver setada então redireciona o usuário para a página de loginif (!isset($_SESSION['id'])) {        Header('Location: index.php'):}?>... conteudo restrito....

 

 

 

----------------------------------

--- verifica.php

o action do meu form de login:

<?//CONECTA COM O BANCO DE DADOSrequire_once("conecta.php");//RECEBE OS DADOS DO FORMULÁRIO$usuario = $_POST['login'];$senha = $_POST['senha'];//VERIFICA$sql = mysql_query("SELECT id, login, senha FROM cadastroWHERE login = '$login'AND senha = '$senha'") or die("ERRO NO COMANDO SQL");//LINHAS AFETADAS PELA CONSULTA$row = mysql_num_rows($sql);//VERIFICA SE RETORNOU ALGOif($row == 0) echo "Usuário/Senha inválidos";else {//PEGA OS DADOS$login = mysql_result($sql, 0, "login");$senha = mysql_result($sql, 0, "senha");$id_cliente = mysql_result($sql, 0, "id");//INICIALIZA A SESSÃOsession_start();[/I]//GRAVA AS VARIÁVEIS NA SESSÃOsession_register('id');session_register('nome');$_SESSION['id'] = $cliente_id;$_SESSION['nome'] = $nome;//REDIRECIONA PARA A PÁGINA QUE VAI EXIBIR OS PRODUTOSHeader("Location: resultado.php");} //FECHA ELSE?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, nao lembro certinho o retorno quando nao tem resultado do num_rows, mas comece mundando a seguinte linha para:if($row <= 0){echo "Usuário/Senha inválidos";} else {....} //FECHA ELSEPois aparentemente o codigo que verifica se a sessao existe esta correto, e se ele esta correto é pq a session esta sendo gravada, entao o erro estaria na verificação do usuario. mas lembre-se, a sessao só se encerra quando se fecha todos as janelas do browser abertas, então se você esta saindo da pagina e tentando entrar denovo sem fechar o navegador, pode ter problemas ai.AbraçosPaulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ae p4ul0c3s4r.Fiz a alteracao q falow, mas nao funcionou. a verificacao do usuario e senha do banco de dados esta correta pq se eu digito um usuario e senha errado e retorna "Usuário/Senha inválidos". o problema esta nas paginas q tem q ser protegidas. qdo eu logo ele autentica e retorna ao index.php , mas ele loga.

Compartilhar este post


Link para o post
Compartilhar em outros sites

outra coisa: se eu tiro o codigo :

<?session_start();// Se a sessão id não estiver setada então redireciona o usuário para a página de loginif (!isset($_SESSION['id'])) {       Header('Location: index.php'):}?>

do resultado.php ele loga normal e mostra o conteudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da uma olhada neste tópico que ele vai te ajudar

http://forum.wmonline.com.br/index.php?showtopic=120984

 

E da uma olhada neste aqui, aonde eu falei do uso de apostrofos nas variaveis

http://www.imasters.com.br/forum/index.php?showtopic=135689

 

//RECEBE OS DADOS DO FORMULÁRIO$usuario = $_POST['login'];$senha = $_POST['senha'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.