Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu estou usando um sistema de login com session, está funcionando perfeitamente.
Mas agora eu quero colocar um sistema de "manter conectado", como o do Google ou o do Facebook, então eu tive que mudar o sistema inteiro para cookies.
Mas o script sempra dá erro na parte da verificação (verificar se as informações do cookies estão corretas).
Olhem os scripts:
Login.php
require "conect.php"; require "anti_sql_injection.php"; $usuario = trim($_POST['usuario']); $senha = trim($_POST['senha']); $mantconect = $_POST['mantconect']; // Se for 1, significa que o usuário quer manter a conexão ligada mesmo se fechar o browser $comando1 = "SELECT usuario, senha FROM users Where usuario= '".anti_sql_injection($usuario)."' and senha= '".anti_sql_injection($senha)."'"; $query = mysql_query($comando1, $myconect); if(mysql_num_rows($query)==1) { // Cria os cookies da sessão if ($mantconect == 1) { setcookie('usuario', $usuario, (time() + (29 * 24 * 3600))); setcookie('senha', $usuario, (time() + (29 * 24 * 3600))); } else { setcookie('usuario', $usuario); setcookie('senha', $senha); } // Leva de volta ao início do site echo '<div id="sucesso">Login concluido com sucesso! Redirecionando para o inicio do site...</div>'; echo '<script>location.href="index.php";</script>'; exit; } else { echo '<div id="erro">Nome de Usuário ou Senha digitados incorretamente.</div>'; }
Até ai tudo bem, mas olhem o script que faz tudo:
Menu.php
<div id="menu"> <div id="transp"><span class="texto"> <a href="index.php">Inicio</a> <a href="ranking.php">Ranking</a> <?php // Verifica se a sessão não existe, se não existir verifica se o cookie existe if (isset ($_COOKIE['usuario']) and isset ($_COOKIE['senha'])) { $usuario = $COOKIE['usuario']; $senha = $COOKIE['senha']; $verifcookie = "SELECT usuario, senha FROM users Where usuario= '".$usuario."' and senha= '".$senha."'"; $querycookie = mysql_query($verifcookie, $myconect); if (mysql_num_rows($querycookie) == 0) { // Se o usuário e a senha não se conectarem no MySQL, apaga os cookies e leva de volta ao login setcookie('usuario', $usuario, (time() - (29 * 24 * 3600))); setcookie('senha', $senha, (time() - (29 * 24 * 3600))); echo '<script>location.href="login.php";</script>'; } } // Verifica se já existe o cookie pra poder colocar as opções no menu if (isset ($_COOKIE["usuario"]) and isset($_COOKIE["senha"])) { echo '<a href="registro_jogo.php">Registrar um jogo</a> <a href="painel.php">Painel do Usuário</a> <a href="sair.php">Sair</a> ';} else { echo '<a href="registro.php">Registro</a> <a href="login.php">Login</a> ';} ?> <a href="ajuda.php">Ajuda</a></span></div></div>
O arquivo menu.php, como o nome diz, é o menu do site. E como ele entra em todas as páginas do site, aprovetei e coloquei o script ali.
Mas o problema é que quando ele verifica no MySQL, sempre retorna 0 linhas, ou seja, "O nome de usuário ou senha estão incorretos".
Se tiver outra maneira de fazer tal sistema usando sessões (sistema simples, se for mais complicado que esse não adianta, só vai complicar mais ainda pra mim) me falem.
Por favor, me ajudem :pinch:
Alguém pode me ajuda? :pinch:
Carregando comentários...