DARKSx2 0 Denunciar post Postado Maio 9, 2010 Pessoal, o meu problema é o seguinte: Estou criando um sisteminha de cadastro/login... Quando a pessoa faz o login, é exibido "Você esta logado $login"; Segue o codigo da pagina: <?php require_once("config.php"); ?> <html> <head> <title>Untitled Document</title> </head> <body> <p><strong>Seja bem vindo ao site.</strong></p> <form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF']; ?>"> <table width="649" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="183" height="43"><a href="cadastro.php">Cadastre-se</a></td> <td width="44">Login:</td> <td width="152"><label> <input type="text" name="login" id="login" /> </label></td> <td width="56"><div align="right">Senha</div></td> <td width="158"><label> <div align="right"> <input type="text" name="senha" id="senha" /> </div> </label></td> <td width="56"><label> <div align="right"> <input type="submit" name="entrar" id="entrar" value="Entrar" /> </div> </label></td> </tr> </table> </form> <?php if (isset($_POST['entrar'])) { $login = $_POST['login']; $senha = $_POST['senha']; $resultado = mysql_query("SELECT * FROM usuarios where user_login='$login'"); $linhas = mysql_num_rows ($resultado); if($linhas == 0) { echo("Usuario nao encontrado"); }else { if ($senha != mysql_result($resultado, 0, "user_senha")) { echo("A senha está incorreta!"); }else { setcookie("login", $login); setcookie("senha", $senha); $usuario = $_COOKIE['login']; echo("Voce esta logado $usuario"); echo("<a href='logout.php'>Sair</a>"); } } } ?> <p><strong></strong></p> </body> </html> & pag logout.php: <?php setcookie("usuario"); setcookie("senha"); $_COOKIE['login'] = ""; header ("Location: index.php"); ?> Mas quando a pessoa clica em sair... some o "Voce esta logado $login", até ai tudo bem... mas se essa pessoa digitar outro login e senha, clicar ENTRAR, vai aparecer o nome anterior... e se sair e entrar com uma terceira conta, aparecera o nick da segunda... Alguem pode ajudar a solucionar? Compartilhar este post Link para o post Compartilhar em outros sites
Renato Neto 0 Denunciar post Postado Maio 9, 2010 Amigo, quando você seta um cookie é necessário dar um refresh na página para poder acessar os dados dele. Eu te aconselho usar session para um sistema de login mais seguro. Para resolver o problema, você poderia exibir o login digitado ao invés do cookie salvo, assim: echo("Voce esta logado $login"); Desse método seria exibido o login que a pessoa digitou. Seu logout tbm está errado: Aqui você ta setando mais 2 cookies desnecessáriamente. setcookie("usuario"); setcookie("senha"); Isso só seta a variável no momento da execução, o cookie não terá seu valor alterado. $_COOKIE['login'] = ""; O certo seria: <?php setcookie('login', '', time() - 60); header('Location: index.php'); ?> Espero ter ajudado, abraço. Compartilhar este post Link para o post Compartilhar em outros sites
RafaelCps2 0 Denunciar post Postado Maio 9, 2010 Na pagina logout.php coloque esse codigo unset($_SESSION['usuario']); unset($_SESSION['senha']); session_destroy(); Compartilhar este post Link para o post Compartilhar em outros sites
Renato Neto 0 Denunciar post Postado Maio 9, 2010 Na pagina logout.php coloque esse codigo unset($_SESSION['usuario']); unset($_SESSION['senha']); session_destroy(); Ele não está usando sessions. Compartilhar este post Link para o post Compartilhar em outros sites
DARKSx2 0 Denunciar post Postado Maio 9, 2010 Hum, session é mais seguro para um sistema de login? Pode me explicar o por que? Estou aprendendo agora.. Edit: Encontrei um topico sobre isso... http://forum.imasters.com.br/index.php?/topic/380704-o-que-e-mais-seguro-sessions-ou-cookies/ Vou começar a trabalhar com SESSION entao.. No lugar de: setcookie("login", $login); setcookie("senha", $senha); Eu coloco: $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; Correto? Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Maio 9, 2010 Raphael, Basicamente cookies são armazenados no cliente enquanto os dados de uma session são armazenadas em disco no servidor. Isso significa que, ao gravar um cookie no cliente, você estará permitindo que o usuário, utilizando ferramentas como firebug, possam modificar esses dados. Compartilhar este post Link para o post Compartilhar em outros sites
DARKSx2 0 Denunciar post Postado Maio 9, 2010 Pessoal, problema resolvido, muito obrigado a todos. Codigo da minha pag: <?php require_once("config.php"); if (isset($_POST['entrar'])) { $login = $_POST['login']; $senha = $_POST['senha']; $resultado = mysql_query("SELECT * FROM usuarios where user_login='$login'"); $linhas = mysql_num_rows ($resultado); if($linhas == 0) { echo("Usuario não encontrado"); }else { if ($senha != mysql_result($resultado, 0, "user_senha")) { echo("A senha está incorreta!"); }else { $emailuser = mysql_result($resultado, 0, "user_email"); $nomeuser = mysql_result($resultado, 0, "user_nome"); session_start(); $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; $_SESSION['email'] = $emailuser; $_SESSION['nome'] = $nomeuser; } } } ?> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <html> <head> <title>Página inicial do site</title> </head> <body> <p><strong>Seja bem vindo ao site.</strong></p> <?php if(isset($_SESSION['login'])) { echo("Ola "); echo $_SESSION['nome']; echo ("<br>Você está logado com a conta: "); echo $_SESSION['login']; echo("<br>Seu email é "); echo $_SESSION['email']; echo("<br><a href='logout.php'>Sair</a>"); }else { ?> <form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF'] ?>"> <table width="649" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="183" height="43"><a href="cadastro.php">Cadastre-se</a></td> <td width="44">Login:</td> <td width="152"><label> <input type="text" name="login" id="login" /> </label></td> <td width="56"><div align="right">Senha</div></td> <td width="158"><label> <div align="right"> <input type="text" name="senha" id="senha" /> </div> </label></td> <td width="56"><label> <div align="right"> <input type="submit" name="entrar" id="entrar" value="Entrar" /> </div> </label></td> </tr> </table> </form> <?php } ?> <p><strong></strong></p> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites