Ir para conteúdo

Omar~

Members
  • Total de itens

    1325
  • Registro em

  • Última visita

  • Dias vencidos

    15

Tudo que Omar~ postou

  1. Omar~

    Transition Height não funciona em UL

    Algumas incoerências: 1 - No CSS a tag <ul> é transcrita depois do classificador secao-toggle mesmo em uma re-escrita o browser irá ignorar usar usando o que é de substituição no caso somente dados da <ul>. 2 - O classificador cnt-filtro-body já possui uma altura fixa, qualquer filho terá sua altura máxima herdada de seu pai, a não ser que o elemento pai possua alguma regra de overflow. 3 - Suspeito que queira uma espécie de animação de slide-dow/up o browser não executa o esperado você precisará do atributo transform. Obs.: Evite maximizar intervenções em tag's pre estipulando pois qualquer outra tag igual assumirá as mesmas características dificultando manutenção e updates futuros. É possível obter o efeito através de clonagem de elementos pois é assim que jquery executa sem interver no CSS, porém isso consome uma memória elevada demais, termos de MBs para executar algo que simplesmente com CSS em Bits você faz. Veja se é isso que pretende: HTML <button onclick="myFunction()">Clique aqui</button> <div class="cnt-filtro-body"> <ul> <li>a</li> <li>b</li> <li>c</li> </ul> </div> CSS .cnt-filtro-body { position: relative; overflow: hidden; height: 0; transition: .5s all ease-out } .cnt-filtro-body ul { list-style: none; pointer-events: none; position: absolute; z-index: 1; top: 0; left: 0; height: 160px; transform: translateY(-160px); transition: .5s all ease-out } .cnt-filtro-body.secao-toggle { height: 160px } .cnt-filtro-body.secao-toggle ul { pointer-events: auto; transform: translateY(0) } JAVASCRIPT function myFunction() { var element = document.querySelector('div.cnt-filtro-body'); element.classList.toggle('secao-toggle'); }
  2. Omar~

    [Resolvido] Problema com __autoload

    Remova o __autoload e nomeie sua função Então use a função spl_autoload_register enviando o nome da sua nova função como parâmetro. Exemplo: <?php function AutoLoad($Class) { // código do seu auto load aqui } spl_autoload_register('AutoLoad');
  3. Omar~

    executar function dentro de function

    Qual seria a situação? Por não vejo motivos disso acontecer. Se acontecer podemos entrar em loop infinito o que vai fazer com que não só software do usuário trave como pode levar a danos no hardware do mesmo. Se explicar melhor com certeza a um jeito melhor para proceder.
  4. Houve um equívoco meu, ao ler rápido: Mau interpretei pois validacao_usuarios é um método e não uma classe. Então certifique-se que a classe que tenha validacao_usuarios como método seja filha da classe DBModels.
  5. Bom não mecho com mysqli, mas olhando a classe validacao_usuarios que na verdade deveria ser nomeada como ValidacaoUsuarios, o erro mesmo está nessa linha: O método newConnection não pertence ao escopo da classe e sim no escopo da outra classe DBModels. O que você pode está fazendo é renomear corretamente a classe validacao_usuarios e declarar-la como sendo filha de DBModels, assim ela herda tudo que é protegido ou publico da classe mãe. class ValidacaoUsuarios extends newConnection { Não sei se vai dar certo porque como disse não mecho com msqli meu negócio é só PDO, mas o erro referido no título é porque algum objeto não pode chamar alguma função, justamente pelo que mencionei acima.
  6. Omar~

    Horário PHP

    A primeira coisa que veio em minha mente foi: Buscar o horário atual Usar a função explode para pegar a hora Se for maior que 23 ou 00 usando a função strtotime aumentar mair uma hora, assim prevendo para que não aconteça erros de data caso seja último dia de cada mês ou ano. Caso não seja 23 ou 00 usar a mesma data atual. Exemplo: <?php $hora = (int) explode(':', date('H:i:s'))[0]; if ($hora >= 23 || $hora < 1) { $novaData = date('Y-m-d H:i:s', strtotime('+1 hour')); } else { $novaData = date('Y-m-d H:i:s'); } var_dump($novaData);
  7. Omar~

    Regex para validação

    Não sei qual o senário aí, mas se for saber se uma string possui ou não caracteres especiais é só passar por combinação, para isso usamos a função match. Já para a quantidade de caracteres usamos o protótipo length. var stringA = "CaracteresComuns"; var stringB = "ãÉíÓú"; var stringC = "'\"\"@#$%¨&*()´+-=_[]{}º~^^?"; verificar(stringA); verificar(stringB); verificar(stringC); quantidade(stringA); quantidade(stringB); quantidade(stringC); function verificar(str) { if (str.match(/^([a-zÀ-ú]+)$/gmi)) { console.log('[' + str + '] Não tem caractere expecial'); } else { console.log('[' + str + '] Tem caractere expecial'); } } function quantidade(str) { var chars = str.length; console.log('[' + str + '] Possui [' + chars + '] de caracteres'); } Pessoalmente acho desnecessário qualquer tipo de filtro em senha do usuário, para que o ele possa usar letras/números/caracteres especiais de forma a garantir a segurança da sua senha conforme ele mesmo achar mais conveniente. Como sempre em um POST recebemos os valores por encodeURI o recebimento da mesma é seguro então logo antes de usar o valor da super global POST do valor do input uso a função htmlentities no PHP assim não sendo possível quebrar meu código PHP caso o valor do input tenha essa finalidade. Até impedindo um sql-inject só com o htmlentities, mesmo também sempre salvo senhas por password_hash. Bom se existe alguma forma de quebrar o código PHP antes da execução nunca vi nem ouvi falar.
  8. Omar~

    Relacionar resultados na busca

    Primeiro a situação porque é difícil de explicar: Preciso realizar uma query em duas tabelas uma de pergunta (tabela_A) outra de resposta (tabela_B) usando o operador LIKE Ambas possuem uma coluna para o conteúdo, a tabela_A possui também uma coluna para título. A tabela_b é possui uma coluna para se relacionar com a tabela_A. Então digamos que na tabela_A tenho a seguinte questão: tabela_A Título: João foi ao mercado? Conteúdo (pergunta): Alguém sabe se ele comprou arroz? tabela_B Conteúdo (resposta): Eu vi que joão comprou feijão. A consulta então seria pela palavra chave joão que poderia está presente nas 2 tabelas e em 3 colunas. Tentei da seguinte forma montar a query: SELECT tabela_A.id, tabela_A.titulo, tabela_A.pergunta, tabela_B.relacao, tabela_B.resposta FROM tabela_A INNER JOIN tabela_B ON tabela_A.id = tabela_B.relacao WHERE tabela_B.resposta LIKE '%joão%' OR ( tabela_A.titulo LIKE '%joão%' OR tabela_A.pergunta LIKE '%joão%' ) Os problemas são se eu passar o comando ON para relacionar a resposta com a pergunta: A query não retorna se não houver dados na tabela_B. A query só retorna resultado se for buscado dados pela coluna resposta (mesmo existindo a palavra chave nas colunas citadas da tabela_A). A questão é: Como eu realizaria essa consulta? Se a palavra chave for encontrado na coluna titulo, pergunta ou resposta, de forma a que eu irei listar a coluna_A. Exemplo: Pesquisou por Maria, no título não tem, na pegunta não tem, na resposta tem. Pesquisou por Luiz, no título tem, na pegunta não tem, na resposta não tem. Ou seja em qualquer um dos campos de ambas colunas que houver a chave de consulta deve retornar dados da coluna_A, mesmo que seja uma resposta na coluna_B. A forma que estou procedendo mesmo dando o resultado esperado não acho adequado acredito que uma query bastaria. Consultar tabela_A pelos campos tilulo e pergunta. Consultar tabela_B pelo campo resposta. Usar a função no PHP array_merge para unir ambos resultados em um único array. Remover os índices duplicados do array unificado.
  9. Omar~

    Javascript - Impedir de voltar a página anterior

    Acontece que isso não é possível, uma vez que você teria que está alterando o comportamento do software que o usuários estivesse usando. No máximo que pode está fazendo é armazenar uma sessão que se ele avançou ao acessar a página anterior novamente esbarraria numa checagem da sessão, porém isso não é válido se selecionar o botão return do browser porque ele teria que recarregar o conteúdo. Dependendo do seu cenário aí dar para simular isso sem nem mesmo redirecionar usando os recursos: https://developer.mozilla.org/pt-BR/docs/Web/API/XMLHTTPRequest https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState
  10. Omar~

    console.log

    Na verdade exitem sim maneiras de fazer guardar dados como esse por código, porém não passa de "gabiarra" para realizar algo que não faz sentido algum fazer.
  11. Omar~

    [Resolvido] imprimir em php valor javascript

    É que você quer meter os pés pelas mãos complicando algo muito simples. Não precisa se desdobrar para extrair com o PHP alguma informação do javascript porque isso é impossível. Nem o PHP pode extrair alguma informação do javascript . Pense da seguinte forma: 1º - PHP (serve-side) processa e renderiza o DOM. 2º - Usuário (user-side) recebe o DOM renderizado pelo (serve-side). Ou seja quando no javascript (user-side) queremos algo do PHP (serve-side) apenas pedimos que o PHP renderize a informação/conteúdo que queremos. No contexto geral então quando você vai enviar algo de uma página para outra você envia a informação para o (user-side) e se algo precisa ser usado com essa informação ela é re-enviada para o (serve-side). Lógico que (serve-side) para trabalhar sozinho com os dados e entregar para o (user-side) as informações renderizadas assim como disse antes. Preparei 4 exemplos diferentes aqui para você ver qual a melhor alternativa. https://drive.google.com/file/d/1nE7cHow4FivW63JEZdGie6GygHXEe_HG/view?usp=sharing
  12. Omar~

    [Resolvido] imprimir em php valor javascript

    Tenta assim: <a href="link1.php" class="link-da-funcao">link1</a> <a href="link2.php" class="link-da-funcao">link2</a> <a href="link3.php" class="link-da-funcao">link3</a> <script> var links = document.querySelectorAll('a.link-da-funcao'); links.forEach(function (e) { e.setAttribute('data-link', e.href); // Adiciona o atributo "data" na tag com o valor do atributo "href" e.removeAttribute('href'); // Remove o atributo "href" impedirá de redirecionar e.addEventListener('click', func_1, false); // Adiciona o evento click na tag }); function func_1(e) { // Obtem o link pelo atributo "data" e rediceciona para ele enviando a informação por GET window.location.href = (e.target).dataset.link + '?informacao=' + 300; } </script>
  13. Omar~

    [Resolvido] imprimir em php valor javascript

    Primeiro que a tag <a> deve ser manipulada para que ela não redirecione de imediato. A função é quem deve fazer isso. O que pode fazer é passar essa informação por protocolo GET para o arquivo link1.php <!-- O nome do evento é "onclick" e não "onClick" O atributo "href" não é necessário pois é a função quem vai redirecionar <a href="link1.php" onClick="func_1()">link1 </a> <br> <br> <p id="tete1"></p> Isso se torna inutilizável aqui pois haverá redirecionamento --> <a href="link1.php" onclick="func_1()">link1 </a> <script> function func_1(e) { /* // Caso precise usar o atributo href e.preventDefault(); var link = e.target.href + '?informacao=' + 300; */ var link = 'link1.php?informacao=' + 300; window.location.href = link; return (false); } </script> Em link1.php <?php var_dump($_GET['informacao']);
  14. Omar~

    fazer link exibir seu conteúdo sem refresh

    O jeito mais simples e mais eficaz dependendo das circunstâncias, mas no geral é a melhor opção, veja isso: https://github.com/Spell-Master/sm-web/tree/master/javascript/AjaxRequest Em outro cenário (requer nível baixo a intermediário em manipulação html e de dados) Página A ou qualquer outro: Exibe link para (Página-B & Página-C) A página A faz leitura de dados compõe o html de página B e C armazena esse conteúdo em localStorage passando o html da página como string em JSON pelo javascript Ao clicar no link o armazenamento em json será acionado e o javascript ao invés de recarregar a página pega a informação e re-escreve o html com os dados armazenados anteriormente. A vantagem desse segundo método é a agilidade na questão que o usuário acessar o link novamente o conteúdo não precisa ser processado pois ele já foi agora é só reutilizar. A desvantagem que mesmo sem acessar o conteúdo extra ele deve ser carregado sem necessidade. Lembrando que é possível combinar ambos métodos, o ajax carrega o conteúdo, armazena, que ao clicar novamente é reaproveitado os dados guardados no localStorage
  15. Hã?!!!! Rodapé fixo no topo, mas quando alcança o topo fica no topo? Mas ele já não estaria no topo? Explica direito isso aí A propósito para quê tantas tag's break? "<br />" Não seria mais simples usar "margin-bottom"
  16. Ai sim é uma boa iniciativa.... Só que tem que ver a qualidade do conteúdo....
  17. Omar~

    Retornar o valor do COUNT na variavel

    var_dump Esse é o principal e mais eficiente recurso do PHP para um desenvolvedor. Pois com ele podemos saber se algo existe e como ele é. Se executar no valor do retorno da função sqli saberá se a query houve erro, se não quais são os dados disponíveis e como eles são, assim saberia como percorrer esse array. O que posso ajudar lhe indicar o caminho: <?php $arrayA = [ 'a' => 'Primeiro índice', 'b' => 'Segundo índice' ]; var_dump($arrayA); echo $arrayA['a']; // Resultado: "Primeiro índice" echo $arrayA->a; // Resultado: "Erro" Não é um objeto $arrayB = (object) [ 'a' => 'Primeiro índice', 'b' => 'Segundo índice' ]; var_dump($arrayB); echo $arrayB->a; // Resultado: "Primeiro índice" echo $arrayB['a']; // Resultado: "Erro" Isso não é associativo Deixo para outra pessoa fazer o código para você e postar aqui
  18. Omar~

    accordion

    Independente como é o esquema HTML aí uma coisa sempre será exata, os elementos existem mesmo em redundância. Isso lhe tras um ARRAY NOD-LIST de todos elementos class accordion. Pois bem lhe darei uma dica útil para quem quer manipular HTML use o comando: console.log(); no caso obtendo o log da variável acc que armazena o array. console.log(acc); Se olhar o console do browser verá que o índice [0] é o primeiro elemento o índice [1] o segundo e por aí vai.... Aquele que você quer "mostrar" basta apenas alterar sua propriedade style. acc[0].style.display = 'none'; Ou seja na página que você redirecionou, quer manipular um elemento é só buscar por ele e fazer o que bem entender.
  19. Omar~

    accordion

    Vamos lá... Não deu para entender quem é a página inicial. Quando você redireciona, todo html é redefinido incluindo scripts. (Por isso não entendi também a lógica de redirecionar e manter, pois não se dar para saber quem de fato está executando o script). Der uma olhada nesse meu script accordion: https://github.com/Spell-Master/sm-web/blob/master/javascript/Accordion/ Nesse meu script você pode expandir um elemento através do método forceOpen Explique melhor sua situação porque podemos levar informações de página para outra através de protocolos GET.
  20. Omar~

    Redirecionamento não esta dando certo

    Provavelmente a lógica de sua função get não é a mais adequada. Então fazendo uma analise crítica do código chego a seguinte conclusão: <?php require_once('include/db_config.php'); require_once ('include/funcoes-site.php'); $slug = get('slug'); $configs = DBRead('cliente_config','*',"WHERE slug = '{$slug}'"); if (count($configs)) { // $configs é um array que possui 1 ou mais índices /* Então percorrer o array $configs ...... foreach ($configs as $config) {} */ } else { // $configs é ou não um array se for não possui nem 1 índice }
  21. Omar~

    Retornar o valor do COUNT na variavel

    Tente assim pois se a query retorna e não tem erro $sql é um array: echo ($sql[0]['Quantidade']); // Primeiro índice do array "0" foreach ($sql as $indice) { echo ("{$indice['Quantidade']}<hr />"); } Qualquer caso é só fazer o básico e necessário que é ver se os dados realmente existem e como eles são: echo ("<pre>"); var_dump($sql); echo ("</pre>");
  22. Omar~

    form action

    Cogitei duas questões: Você quer um form dentro de outro? Não é possível, existe uma arquitetura que todo HTML deve seguir. Quer mudar o action do form de acordo com o valor do PHP? Isso é possível pois o html é entregue pelo php da forma que compilar ele. Mas com o que mostrou não dar para entender a finalidade. Porque necessita dos critérios para designar o action do form e isso não dar para ter noção com o que postou. Entretanto se indo nesse no conceito que o seletor submete de um jeito e o botão de outro o próprio javascript pode manipular a tag <form>. <form id="identificador" method="POST"> <select id="seletor"> <option value="" selected=""></option> <option value="item1">item1</option> </select> <button onclick="peloButton()">Enviar</button> </form> <script> var formulario = document.getElementById('identificador'); function peloSeletor(e) { if (e.target.value == 'item1') { formulario.setAttribute('action', 'pegou_pagina_1.php'); formulario.submit(); } } function peloButton() { formulario.setAttribute('action', 'pegou_pagina_2.php'); formulario.submit(); } document.getElementById('seletor').addEventListener('change', peloSeletor, false); </script>
  23. Omar~

    form action

    Não sei qual o motivo da "gabiarra", mas acredito que <input type="hidden" /> no formulário resolveria apenas indicado seu value. Enfim para o procedimento pelo que relatou é simples.... <form action="pegou_pagina_1.php" id="pelo_botao" method="POST"> </form> <form action="pegou_pagina_2.php" id="pelo_seletor" method="POST"> </form> <select id="seletor"> <option value="" selected=""></option> <option value="item1">item1</option> </select> <button onclick="peloButton()">Enviar</button> <script> function peloSeletor(e) { if (e.target.value == 'item1') { document.getElementById('pelo_seletor').submit(); } } function peloButton() { document.getElementById('pelo_botao').submit(); } document.getElementById('seletor').addEventListener('change', peloSeletor, false); </script>
  24. Omar~

    php do zero

    Na verdade não existe a forma correta. Digamos que seja deixar o código simples, escalável e de fácil manutenção (orientação a objeto é o caminho nesse requisito). Acho que seu erro foi ter ido para o lado dos framework's que vão na mão oposta da programação, aprenda o mais possível do php e se no futuro sentir necessidade de usar algum auxiliar veja a viabilidade de enfim usar. Poderia lhe está indicando uma agência de ensino que conheço que tem bons cursos do PHP, mas seria fazer propaganda aqui. Mas posso sugerir como eu fiz no começo de minha jornada. Comecei adquirindo aplicações prontas, estudando-as e aprendendo sobre cada recurso diretamente pela documentação do PHP https://www.php.net/ e assim fui criando meus execícios e fazendo minha auto-didática. Além do mais você pode está procurando alguma coisa no youtub deve haver alguém que ensine algo de qualidade, ao qual duvido muito, mas não custa tentar.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.