Publicidade

Gabriel Heming

Moderadores
  • Total de itens

    3.287
  • Registro em

  • Última visita

  • Dias vencidos

    71

Gabriel Heming venceu o dia em Julho 14

Teve o conteúdo mais curtido

Reputação

644 Incrível

Sobre Gabriel Heming

  • Classificação
    Especialista em Desenvolvimento de Software
  • Data de Nascimento 05-05-1989

Informações Pessoais

  • Sexo
    Masculino
  • Interesses
    PHP, C#/.NET, Microsoft Dynamics AX, JavaScript, Java, OOP, Padrões de Arquiteturas e de Projeto, Engenharia de Software.

Últimos Visitantes

43.936 visualizações
  1. Altere o while por um foreach, use o método fetchAll() e utilize o índice do array: foreach($dados->fetchAll(PDO::FETCH_OBJ) as $key => $linha) { echo ($key + 1)." - ".$linha->nomelugar; }
  2. Tem que haver algo diferente, pois tanto fetchAll quanto die não retornam o valor bool(true). Os únicos resultados que podem ser retornados é um array (que pode ou não ser vazio) ou bool(false).
  3. Isso depende do que está ocorrendo, pois, está retorando um boolean true. Poste o seu código aonde isso ocorre.
  4. Use return: public function login($id){ /** código omitido **/ return $buscardados->fetch(PDO::FETCH_OBJ) or die(print_r($query->errorInfo(), true));; } E capture em uma variável: $usuario = new usuario(); $login = $usuario->login($id); Entretanto, sua classe possui alguns problemas quanto a POO, um usuário não é uma conexão. Se usuário é uma classe para gerenciar usuários no banco de dados, ela pode fazer uso de uma conexão. Sugiro a leitura do link abaixo:
  5. Se você não precisa dela e está usando, está implementando errado. Entenda a classe abstrata como a mescla entre uma classe concreta e uma interface. Em uma interface, por exemplo, todos os métodos são públicos e abstratos, já em uma classe concreta, você não pode ter métodos abstratos. Mesclando ambas as classes, você possui uma classe que pode possuir métodos concretos e métodos abstratos, podendo ser, além de public, protected. A primeira grande vantagem é reutilização de código entre um grupo de objetos do mesmo tipo. Visto que uma classe abstrata não pode ser instanciada, o objeto acaba contendo apenas código em comum entre as classes especializadas. A segunda vantagem, é a utilização como contrato (interface) e o uso do polimorfismo. O exemplo mais famoso é o de conta bancária (classes: Conta, ContaCorrente e ContaPoupança). Aonde a classe Conta é abstrata implementando todos os métodos em comum de todas as contas. Já, as demais classes (que são concretas), implementam o que é de particularidade própria.
  6. Sugestão é whitelist. Um exemplo de como pode ser explorado: https://en.wikipedia.org/wiki/File_inclusion_vulnerability#Example
  7. Então deve alterar a forma de implementação, pois seu site estará vulnerável. E é uma vulnerabilidade básica bastante explorada.
  8. Whitelist seria uma lista de arquivos que são permitidos, todo o resto é bloqueado. switch($_POST['juvi']) { case 'file-1': case 'file-2': case 'file-3': include($_POST['juvi'].'.php'); default: echo "Arquivo não permitido"; }
  9. Seu código está vulnerável dessa forma. Utilize uma whitelist para garantir que somente alguns arquivos sejam acessáveis. Um simples switch já resolverá seu problema.
  10. @DiogoD a função pega um range de caracteres através do literal em UTF-8 e não os caracteres em si. http://www.utf8-chartable.de/unicode-utf8-table.pl?start=128&number=128&utf8=string-literal&unicodeinhtml=hex Quais tipos de caracteres especiais que ela não substitui?
  11. Todo elementos HTML do tipo node (do tipo nó, que podem possuir outros elementos internos) possuem uma lista de elementos que são permitidos diretamente dentro deles. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul Permitted content - zero or more <li> elements, which in turn often contain nested <ol> or <ul> elements. Ou seja, somente pode ser permitido elementos do tipo <li> e, por sua vez, elementos <li> só podem estar dentro de elementos <ol> ou <ul>. O <li>, por sua vez, possui uma lista mais abrangente de elementos permitidos, por isso não há problema nenhum em colocar a tag <a> diretamente dentro dele: Permitted content - Flow content. Flow content: Tudo que for diferente das regras, deixa o HTML inválido. O HTML não estando válido, seu site terá problemas de renderização em diversos navegadores. Alguns navegadores tendem a corrigir automaticamente esses erros, mas outros não. Essa é uma questão história por falta de padronização que ocorreu principalmente com o HTML 3 (onde a "zueira não tinha limites"). Com o HTML 4 surgiu o xHTML, que era uma forma mais rígida de construir o HTML. O HTML 5 abrangeu mais essa questão. Os navegadores ainda corrigem certas situações por causa da retrocompatibilidade. Por outro lado, search engines tendem a ignorar sites inválidos.
  12. Guardando ou não em um banco de dados, a abordagem é a mesma. Adicione o input em um form e um botão de submit: <form action="#" method="post"> <input name="nome-campo" type="text" /> <button type="submit">enviar</button> </form> No PHP, você irá capturar usando $_POST['nome-campo']. Ou, mude a action para action="get" e capture com $_GET.
  13. @Renan Cardoso isso deixará o HTML inválido. Mude o CSS do link (tag <a>) para que ele utilize todo o espaço do <li>. Somente é importante mudar o display da tag <a> para block. Assim seria o básico: a { display: block; height: 100%; width: 100%; }
  14. Seu problema também é a consulta. O named parameter não deve possuir quotes: 'WHERE nome LIKE :pesquisa' Os quotes são adicionados automaticamente pelo prepared statement conforme a tipagem do atributo. Por outro lado, os sinais de percent devem ser adicionados ao bindValue: $sql->bindValue(':pesquisa', '%'.$pesquisa.'%', PDO::PARAM_STR); http://php.net/manual/en/pdostatement.bindparam.php#99698
  15. Você ainda pode utilizar prepare, só deve utilizar COUNT(*) como select.