sanchesjs 0 Denunciar post Postado Junho 21, 2005 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
p4ul0c3s4r 0 Denunciar post Postado Junho 21, 2005 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
sanchesjs 0 Denunciar post Postado Junho 21, 2005 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
sanchesjs 0 Denunciar post Postado Junho 21, 2005 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
Nícolas 4 Denunciar post Postado Junho 21, 2005 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