Jump to content

George Rewrited

Members
  • Content count

    6
  • Joined

  • Last visited

Community Reputation

0 Comum

About George Rewrited

  1. George  Rewrited

    Alguém já usou a api do ibge?

    $data = file_get_contents("https://servicodados.ibge.gov.br/api/v1/localidades/estados"); echo "<pre>"; print ($data); echo "</pre>"; este código está me retornando isso: ����N�@�_��5&*�;(�h�;��J'0 ̐i�h|㚝o�sP�9�%��]Ӝ����so�ޘLY����2�X����u��k��*-��$�ʈ�$���������䂽�w�s��N6��I�q�5�jE�'��O�|Cr�[|ϩ⁓�d�O�%T���x3��j���9�\*OK�A5��'dH-�O]�BV��7Y �����-v-�������Xs.�K�"�F*�T���_�i��F���d]�XE����M+!|����f�����������6>�8�r=�e͖l����D0.�.� vU���q��1�N8�6���\܎z���� L�����'%�i��hs�z�n� ���}��IyjT���$sĮ fs���-� �����m�
  2. George  Rewrited

    [Resolvido] Dúvidas sobre os arquivos de sessão

    Obrigado, agendei o cron para limpar a pasta uma vez por semana.
  3. George  Rewrited

    [Resolvido] Dúvidas sobre os arquivos de sessão

    Hoje olhei o diretório onde são gravados os arquivos de sessão do PHP , e notei que todos os arquivos que foram criados estavam lá ainda, eu achei que fossem apagados automáticamente. Como configurar o PHP para apagar os arquivos das seções que não estão mais sendo usadas?
  4. George  Rewrited

    Dúvidas sobre include

    Boa noite, criei uma classe para fazer todos os includes das páginas para não ficar me preocupando em colocar os includes necessários em cada uma delas: class includes { public function includes(){ foreach(glob(__DIR__.'/../class/*.php') as $arquivo){ require_once $arquivo; } } } Minha dúvida é: o quão pesado isso fica para o servidor? Já que o PHP é uma linguagem interpretada.
  5. George  Rewrited

    Problemas com sessão no php

    O cookie é o vilão da minha história, vou estudar mais como criá-los e destruí-los, assim que o tirei do código, funcionou tudo perfeito. O outro erro é que eu estava criando uma seção dentro da página de boas vindas, aí a função deslogar estava destruindo esta outra sessão em branco. não a seção do usuário.
  6. George  Rewrited

    Problemas com sessão no php

    Boa noite, comecei estudar php a pouquíssimo tempo e estou passando o sistema de matrícula offline da ONG onde trabalho para um sistema online que será usado por todas as unidades. Comecei talvez pelo mais complicado, login e sessão. Criei uma classe login, que acessa um banco de dados, valida o usuário cria e destrói a sessão. Mas a classe só está validando a sessão na segunda chamada a ela e não a esta destruindo. Será que podem me dar uma luz? <?php Class login{ /* variáveis para a conexão do DB*/ var $db; var $servidor = 'teste'; var $banco = 'teste'; var $usuario = 'teste'; var $senhadb = 'teste'; /* outras variáveis usadas na classe*/ var $sql, $quser, $erro = "", $dados; function validausuario($usuario,$senha){ /* acessa o DB e valida o usuário por uma view q faz join entre as tabelas * usuario e nucleo trazendo só os usuários ativos*/ $this->db = mysqli_connect($this->servidor,$this->usuario, $this->senhadb, $this->banco); $senha= md5($senha); $this->sql ="select * from user_nucleo " . "where user_nucleo.usuario ='".$usuario."' and " . "user_nucleo.senha = '".$senha."'"; $this->quser= mysqli_query($this->db, $this->sql); if($this->quser){ $total=mysqli_num_rows($this->quser); }else{ return FALSE;/*se não trouxe nada*/ } return ($total==1 )?TRUE:FALSE;/*se trouxe apenas uma linha*/ } function logar($usuario,$senha){ /*com o usuário já validado, cria a sessão e o cookie*/ if($this->validausuario($usuario,$senha)){ if(!isset($_SESSION)){ session_start(); } /*passa as colunas da querry para a variavel qsuer e limpa a query*/ $this->dados= mysqli_fetch_assoc($this->quser); mysqli_free_result($this->quser); /*passa os dados para a sessão*/ foreach ($this->dados AS $chave=>$valor){ $_SESSION[$chave]=$valor; } $_SESSION['logado']=1; /*ciação do cookie*/ $valor= join('#', array($usuario,$_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT'])); $valor= sha1($valor); setcookie('token',$valor,0,'/'); } else{ $this->erro = "Usuário inválido"; return FALSE; } } function logado(){ /*verifica se a sessão está criada junto com o cookie*/ if(!isset($_SESSION)){ session_start(); } if (!isset($_SESSION['logado']) or !$_SESSION['logado']){ return FALSE; } if (!isset($_COOKIE['token'])){ return FALSE; } else { $valor= join('#', array($_SESSION['usuario'],$_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT'])); $valor= sha1($valor); if ($_COOKIE['token']!==$valor){ return FALSE; } } return TRUE; } function deslogar(){ if(isset($_COOKIE['PHPSESSID'])){/*destrói o cokkie da sessão*/ setcookie('PHPSESSID', FALSE,(time() - 3600)); unset($_COOKIE['PHPSESSID']); } if(isset($_COOKIE['token'])){/*destrói o cokkie do usuário*/ setcookie('token', FALSE,(time() - 3600)); unset($_COOKIE['token']); } session_destroy(); /*destrói a sessão*/ header("Location: __DIR__/../index.php");/*volta para o login*/ } } Chamada da classe para logar, só vai para a página welcome quando clica pela segunda vez no botão logar (a instância do objeto está no header) : <div> <form method="post" name="formulario" action=""> <h1>Login</h1> <p><label>Usuário</label> <input type="text" name="usuario" maxlength="50" autofocus/></p> <p><label>Senha</label> <input type="password" name="senha" maxlength="50" /></p> <p><input class="button" id="ok" type="submit" name="Logar" value="Logar" /> <input class="button" id="cancel" type="reset" value="Cancelar"/></p> </form> </div> <?php if(isset($_POST["Logar"]) && $_POST["Logar"] == "Logar"){ $logar = $objLogin->logar($_POST["usuario"],$_POST['senha']); if ($objLogin->logado()){ header("Location:__DIR__/../welcome.php"); } } ?> Header instância a classe verifica se existe usuário logado e direciona pro login ou logof <?php require_once(__DIR__.'/class/login.php'); $objLogin = new login(); if ($objLogin->logado()) { echo "<p id='usuario'><a href='logof.php' title='Clique para deslogar'> Bem vindo(a) " . $_SESSION['nome'].",". $_SESSION['nucleo']." <img src='imagens/lock.png' alt=''/></a></p>"; }else { echo "<p id='usuario'><a href='index.php'> " . "Fazer login <img src='imagens/lock_open.png' alt=''/></a></p>"; } ?>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.