calintro 0 Denunciar post Postado Junho 11, 2008 Bom, quando ele autentica o login, confirma senha, etc. O sistema faz o seguinte: setcookie("logado", md5('positivo')); setcookie("login", base64_encode($login)); require_once('teste.php'); Esse teste.php é onde ele vê se o usuário está logado, é uma página privada. Porém, o que acontece é o seguinte: Na primeira tentativa de login ele simplesmente não loga, na segunda, loga. O teste.php tem um arquivo "proteger.php" que verificar a existência do cookie "logado", caso contrário retorna pra index. O que acontece é: Primeira tentativa vai pra index, segunda, vai pra página teste.php certinho. O que pode ser? PS. Eu sei dos problemas de se usar cookie pra login, mas o cliente bateu o pé que queria assim :mellow: Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Junho 11, 2008 Esse teste.php é onde ele vê se o usuário está logadoaí você não ta verificando se o cookie já existe ou não...você ta criando o cookie... pra verificar, faça assim... // verifica se o cookie existe if(isset($_COOKIE["logado"]) { echo "logado"; } else { echo "faça o login"; } Compartilhar este post Link para o post Compartilhar em outros sites
calintro 0 Denunciar post Postado Junho 11, 2008 Esse teste.php é onde ele vê se o usuário está logadoaí você não ta verificando se o cookie já existe ou não...você ta criando o cookie... pra verificar, faça assim... // verifica se o cookie existe if(isset($_COOKIE["logado"]) { echo "logado"; } else { echo "faça o login"; } Meu post ficou ambígüo hehe O código que colei não é do teste.php, é o autenticar.php. Citei o teste.php porque depois que autentica, ele cria os cookies e manda o usuário para a teste.php que é uma página privada.. o teste.php está exatamente como você postou Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Junho 11, 2008 faça um teste simples... faça um form com os campos login e senha, uma página para validar e criar os cookies, e outra para verificar se os cookies existem... veja se irá funcionar! Compartilhar este post Link para o post Compartilhar em outros sites
calintro 0 Denunciar post Postado Junho 11, 2008 Mesma coisa, leva um tempinho... Na segunda tentativa dá certo Compartilhar este post Link para o post Compartilhar em outros sites
mar_tchello 0 Denunciar post Postado Junho 11, 2008 Cara, to com o mesmo problema! A estruturação está exatamente dessa forma: Tenho uma tela de logon em html básico, tem o minimo necessario, um campo de user name, um de senha e o botao de confirmar. Ao clilcar no botao ele chama uma pagina php que valida esses dados, caso sejam confirmados o cookie é registrado e chama-se a proxima pagina que verifica o conteudo do cookie e faz o que tem que fazer, caso seja falso ele chama o logon html de novo com uma msg de erro de login invalido. Porém há um pequeno "delay" nessa de registrar o cookie. Na primeira, mesmo com usuario e senha válidos ele nao aparece o usuário registrado direitinho, mas depois se eu dou um refresh no index (onde verifica a existencia do cookie e seu conteudo, direcionando pro logon ou tela inicial do sistema) ele "termina" de logar e enfim envia pra tela inicial (confirmando que o cookie tava setado normalzinho). Muito estranho isso, to fazendo uma gambi feinha pra ele 'pular' essa primeira etapa... mas não é muito elegante xD Alguma sugestão? Obrigado!! Compartilhar este post Link para o post Compartilhar em outros sites
calintro 0 Denunciar post Postado Junho 11, 2008 Como você fez sua gambiarra? :D Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Junho 12, 2008 ao invés de verificar com isset, tenta com empty para ver se resolve... Compartilhar este post Link para o post Compartilhar em outros sites
calintro 0 Denunciar post Postado Junho 12, 2008 A página proteger.php ficou assim: <?php if(empty($_COOKIE['logado'])) { require('erro.php'); } ?> Mas deu na mesma, eu digito login/senha, ele não loga, eu atualizo e tá logado :wacko: Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Junho 12, 2008 postaí o seu form e o script php... Compartilhar este post Link para o post Compartilhar em outros sites
calintro 0 Denunciar post Postado Junho 12, 2008 A parte do form na index.php: ... <td colspan="12" align="center" valign="middle" background="images/index_r6_c1.jpg"> <?php if(isset($_COOKIE['logado'])) { $cookie = base64_decode($_COOKIE['login']); ?><p class="tx3">Você está logado como <?php echo $cookie; ?><?php } else { ?> <form name="autenticar" method="post" action="autenticar.php"> <label> <input name="login" type="text" class="form1" id="login" value="login" /> </label> <label> <input name="senha" type="password" class="form1" id="senha" value="senha" /> </label> <label> <input name="ok" type="submit" class="form1" id="ok" value=" ok" /> </label> <?php } ?> <label> <input name="busca" type="submit" class="form1" id="busca" value=" busca" /> </label> <label> <input name="busca2" type="text" class="form1" id="busca2" size="50" /> </label> </form></td> ... autenticar.php: <?php include ('config.php'); include ('string.php'); $login = trim(string($_POST['login'])); $senha = trim(string($_POST['senha'])); if ($_COOKIE['cadastrado'] == 'sim') { $consulta = mysql_query("SELECT * FROM usuarios WHERE login = '$login'"); if (mysql_num_rows($consulta) == '1') { while($res = mysql_fetch_array($consulta)) { $conSenha = $res['senha']; $conValida = $res['valida']; } if ($conValida == 'S') { if(md5($senha) == $conSenha) { setcookie("logado", md5('positivo')); setcookie("login", base64_encode($login)); require_once('teste.php'); } else { echo "Senha inválida"; } } else { echo "Valide seu login"; } } else { echo "Login inválido"; } } else { echo "Você não tem permissão para vizualizar"; } ?> teste.php: <?php include ('proteger.php'); ?> ...(resto da página) proteger.php: <?php if(empty($_COOKIE['logado'])) { require('erro.php'); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Junho 12, 2008 tenta colocar uma data pra ele, setcookie($nome, $valor, time()+(3600 * 24 * 6)); onde o 6 é a quantidade de dias validos pro cookie Compartilhar este post Link para o post Compartilhar em outros sites
calintro 0 Denunciar post Postado Junho 12, 2008 tenta colocar uma data pra ele, setcookie($nome, $valor, time()+(3600 * 24 * 6)); onde o 6 é a quantidade de dias validos pro cookie Não funcionou :( Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Junho 12, 2008 não são as configurações do seu browser não? Compartilhar este post Link para o post Compartilhar em outros sites
calintro 0 Denunciar post Postado Junho 12, 2008 Testei no FF e no IE, mesma coisa pros dois... Testei em outro servidor também Compartilhar este post Link para o post Compartilhar em outros sites
JHenrique132 0 Denunciar post Postado Junho 29, 2008 CODE <? ob_start(); ..... ?> Compartilhar este post Link para o post Compartilhar em outros sites
JHenrique132 0 Denunciar post Postado Junho 29, 2008 acho q ira funcionar tenta ae abraço Compartilhar este post Link para o post Compartilhar em outros sites
JCMPJ 0 Denunciar post Postado Junho 30, 2008 Coloque ob_start(); no topo da página. E ao invés de incluir a pagina tente mandar um header(Location: ...) para transferir a pagina. Compartilhar este post Link para o post Compartilhar em outros sites
Willis Almeida 0 Denunciar post Postado Julho 3, 2008 Olá Amigos! Eu já tive esse mesmo problema com COOKIE só funcionar na segunda vez ou dando um F5 (atualizar)... Então, podemos resolver esse problema com um header('location:?'); que faria o papel do F5 ;-) //--- Setando cookie de login setcookie('login',true); //--- Redirecionando a pagina para si mesma (isso é igual a "Atualizando a pagina") header('location:?'); Vejam um código completo como exemplo de login com COOKIE: <? //--- Dados do usuário $usuario = 'usuario'; $senha = 'senha'; //--- LOGIN - Autenticando if($_POST['logar']){ if($_POST['usuario'] == $usuario && $_POST['senha']==$senha){ //--- Setando cookie de login setcookie('login',true); //--- Redirecionando a pagina para si mesma (isso é igual a "Atualizando a pagina") header('location:?'); }else{ echo "<center style='color:red'>Login incorreto!</center>"; } } //--- LOGOUT if(isset($_GET['logout'])){ //--- Setando cookie de login setcookie('login',false); //--- Redirecionando a pagina para si mesma (isso é igual a "Atualizando a pagina") header('location:?'); } //--- SE ESTA AUTENTICADO - MOSTRA A PAGINA RESTRITA if($_COOKIE['login']){ ?> <center> Você está logado!<br> <a href="?logout">Sair</a> </center> <? //--- NAO LOGOU - MOSTRA A PAGINA DE LOGIN }else{ ?> <center> <form method=POST> Usuário:<br> <input name=usuario><br> Senha:<br><input type=password name=senha><br> <input type=submit name=logar value=Login> </form> </center> <? } ?> Compartilhar este post Link para o post Compartilhar em outros sites