Ir para conteúdo

Guilherme Luiz

Members
  • Total de itens

    446
  • Registro em

  • Última visita

  • Dias vencidos

    3

Tudo que Guilherme Luiz postou

  1. Guilherme Luiz

    Ajuda, Update de Legenda em upload de multiplas fotos?

    Você fez a alteração no HTML? Aplique um var_dump em $_POST['legenda'] e $_POST['ids'] para ver que resultados ele tras...
  2. Guilherme Luiz

    Soma de array

    /* * inicio os arrays fora do loop para salvar valores */ $qtC = []; $vatual = []; while($dadosd = mysqli_fetch_array($resultadod)){ /* * Dentro do while armazeno os resultados nos arrays */ $qtC[] = $dadosd["qtC"]; $vatual[] = "https://api.hgbrasil.com/finance/stock_price?key=$chave&symbol=$acao["acao"]"; } /* * Somo todos os valores de cada um dos arrays */ $totalqtC = array_sum($qtC); $totalvatual = array_sum($vatual); /* * Multiplico os valores somados e então os imprimo */ $totalfinal = ($totalqtC * $totalvatual) echo $totalfinal; Isso seria basicamente o que você demonstra que procura supondo que para cada resultado do while o $vatual seja diferente baseado na sua ação. Sempre que você precisar salvar dados em array dentro de um loop, inicie a variavel fora do loop como array e então a aplique dentro do loop para que cada iteração seja armazenada numa chave do array.
  3. Guilherme Luiz

    retirar aspas e colchetes vindos de um select no banco de dados (dependente id)

    A coluna DEPENDENTES aparentemente foi salva como JSON no banco de dados e por isso você tem que dar um JSON_DECODE nesse campo na hora do fetch dessa coluna... Algo mais ou menos assim: $dependentes = json_decode($fetch['dependentes'], true); Dessa forma o output é um array que você poderá dar um foreach ou então acessar pelo key
  4. Guilherme Luiz

    API do Whatsapp enviar arquivos

    A partir dessa API publica não é possivel Você precisará da API Oficial do aplicativo que é fornecida por brokers de mensageria homologados pelos Facebook ou então buscar APIs de terceiros não oficiais... Da uma olhada no github que existem vários repositórios
  5. Guilherme Luiz

    Validação antes de submeter formulário

    Esse tipo de situação é ideal você tratar com JS porque faz as validações direto no DOOM. Agora se você optar por fazer isso em PHP você estará dando voltas porque veja os caminhos: JS → Inputa valor incorreto → Gera alerta → Usuario ajusta e da submit PHP → Inputa valor → Usuario da submit → Backend checa se é incorreto → Se for incorreto retorna alerta → Usuario faz as alterações (isso se você tiver armazenado em SESSION os dados preenchidos anteriormente para que o usuario não tenha que repreencher tudo) → Usuario faz novo submit Dessa forma, no JS a forma mais fácil seria algo mais ou menos var contrato = document.querySelector('input[name=contrato]:checked').value; var empresa = document.getElementByName('empresa').value; if (contrato == 'pj') { if (empresa.length == 0) { alert('preencha o nome da empresa'); } else { return } } Basicamente você vai checar se o input selecionado que tem o name CONTRATO tem o seu value como pj e se o valor do input EMPRESA for igual a zero, então é gerado um alerta, mas isso é algo bem basicão, mais que isso ai é preciso ver lá no tópico de Javascript
  6. Guilherme Luiz

    Ajuda, Update de Legenda em upload de multiplas fotos?

    Como os IDs do seu formulário surgem de um input[] você pode fazer um input[] tbm com o id da foto em modo hidden... por exemplo: HTML <input type="hidden" name="ids[]" value="<?php echo $item['id']; ?"> <input type="text" name="legenda[]" id="legenda" value="<?php echo $item['legenda']; ?>"> PHP foreach($_POST['ids'] as $k => $id){ $query ".. WHERE id='{$id}' and legenda='{$_POST['legenda'][$k]}'"; } Como o número de items de ID será exatamente o mesmo que o de LEGENDA então você pode iterar o array dos IDs e então acessar o valor das legendas pelo KEY ($k) Apesar dessa forma ser a mais fácil eu não gosto de usar assim porque se você tiver 1000 legendas, irá executar 1000 queries. Eu gosto de usar nesse cenário o mysqli_multi_query Vale a leitura https://stackoverflow.com/questions/37381532/which-is-better-one-big-query-or-multiple-small-query
  7. Guilherme Luiz

    Expressões regulares php

    E porque não utilizar a função nativa? mysqli_real_escape_string
  8. Guilherme Luiz

    Verificar se item (link) está autorizado a ser utilizado

    Olá pessoal! Tenho uma situação onde preciso adicionar um FLAG se o usuário estiver incluindo um link em sua mensagem para que eu possa filtra-la ou não. Se estiver incluindo um link, preciso checar se esse link está autorizado. Se sim, adiciono um FLAG false, se não, true. Com links absolutos, isso é simples de ser feito e já tenho feito: <?php $regex = "(((https?|ftp):\/\/)?(bit)?([a-z0-9+!*(),;?&=.-]+(:[a-z0-9+!*(),;?&=.-]+)?@)?([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3})))(:[0-9]{2,5})?(\/([a-z0-9+%-]\.?)+)*\/?(\?[a-z+&$_.-][a-z0-9;:@&%=+/.-]*)?(#[a-z_.-][a-z0-9+$%_.-]*)?)"; $linksAutorizados = ['bit.ly/123']; $mensagem = [ 'usuario' => 'teste', 'texto' => 'seja bem vindo ao meu site bit.ly/123' ]; $temLink = preg_match ($regex, $mensagem['texto'], $links); /** * $links retorna o seguinte array * 0: "bit.ly/123" * 3: "bit" * 7: "ly" * 8: "ly" * 13: "/123" * 14: "3" */ if ($temLink) { /* * Checo se link da mensagem é igual ao link da lista de linksAutorizados. * Se o link da mensagem for igual ao link da lista a mensagem não precisa ser filtrada * Se o link da mensagem for diferente ao link da lista, a mensagem precisa ser filtrada */ if ($links[0] == $linksAutorizados[0]) { $mensagem += [ 'filtrar' => false ]; } else { $mensagem += [ 'filtrar' => true ]; } } else { /* * Se não encontrar link na mensagem, ela não precisa ser filtrada */ $mensagem += [ 'filtrar' => false ]; } Obs: O acesso aos arrays foi em hardcoded para uma exemplificação mais clara. O meu problema é: E se eu quiser liberar links variáveis, ou seja, não importa o subdomínio ou demais parâmetros de querystring, checar somente o dominio Por exemplo *.meusite.com.br meusite.com.br/* subdominio.meusite.com.br/* Exemplo de array com links (que podem ser variaveis) autorizados para o usuario: $linksAutorizados = ['bit.ly/123', 'goo.gl/*', 'meusite.com.br/*' ]; Onde estão os asteriscos seriam os pontos que eu ignoro da verificação para filtro. Passei o dia fazendo alguns testes e pesquisando material no Stack mas não encontrei nada. Desde já muito obrigado por qualquer luz =)
  9. Guilherme Luiz

    Verificar se item (link) está autorizado a ser utilizado

    Boa!! Gostei da dica/orientação. Segue resultado <?php /** * $userLink = String com o link encontrado no texto * $links = defino array de links em whitelist para iterar * $authorizedLinks = Array pego por referencia de uma consulta ao Mysql com lista de links autorizados * $result = Por padrão já defino como true, mas se o link da mensagem for encontrado na whitelist, então defino para false */ $checkWhiteList = function($userLink, array $links = null) use (&$authorizedLinks) { $links = $authorizedLinks; $result = true; foreach($links as $link){ if(strpos($userLink, $link) !== false) { $result = false; } } return $result; }; Fiz uma função em closure para poder herdar o array com os links autorizados de outro escopo para não ter que realizar nova consulta ao meu banco de dados, dado que posso ter milhares de mensagens para checar, o que poderia causar sobrecarga ao meu bd. Dessa forma posso chamar essa função dentro do meu loop de mensagens milhares de vezes com apenas uma consulta a lista de links autorizados do meu banco de dados. Dessa forma se no meu banco eu tiver o link - meusite.com.br - e meu usuário imputar subdominio.meusite.com.br | meusite.com.br/querystring a função consegue identificar como link dinâmico e então autorizar. E caso eu queira link absoluto é só ter em meu banco de dados subdominio.meusite.com.br e se meu usuario imputar meusite.com.br o link será barrado. Consegui fazer exatamente o que pretendia. Obrigado!
  10. Guilherme Luiz

    variavel php curl

    Essa API parece que consome e retorna dados em JSON Sabendo disso fica muito fácil trabalhar! Veja exemplo e comentários <?php /* * Array com os parametros que a API solicita */ $jsonData = [ 'number' => '1194445566', 'message' => 'minha mensagem' ]; /* * Endpoint da API - Prefira sempre separar em variaveis para uma melhor leitura e desacoplamento de código */ $endpoint = 'http://api.url'; /* * Array com os HEADERs que a API exige que seja utilizado */ $headers = [ 'content-type: application/json', 'Authorization Basic: XXXXXXXXXXX' ]; /* * Inicialização do cURL */ $ch = curl_init(); /* * Array com opções/parametros que podemos usar no cURL * Utilize o parametro CUSTOMREQUEST somente se for algo diferente de POST ou GET * Se você quiser tratar os dados recebidos deixe a opção HEADER em false, mas para fins de debug deixe como true */ $chOptions = [ CURLOPT_URL => $endpoint, CURLOPT_RETURNTRANSFER => 1, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_HTTPHEADER => $headers, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => json_encode($jsonData), CURLOPT_HEADER => 0 ]; /* * Indicamos em qual array estão as opções do cURL e então o executamos */ curl_setopt_array($ch,$chOptions); $curlRequest = curl_exec($ch); /* * Se o request ao endpoint for TRUE então tratamos o callback fornecido * Supondo que o retorno também é em JSON, nós o transformamos num array na variavel $callack * Se o request ao endpoint por algum motivo der erro, então imprimimos o erro da conexão */ if($curlRequest){ $callback = json_decode($curlRequest,true); print_r ($callback); } else { echo 'cURL Error # - '.curl_error($ch); } /* * Indicar o fechamento do curl ao meu ver entra como opcional, mas caso sejam várias requisições em loop, então recomendo a utilização. */ curl_close($ch); O ideal será sempre entrar em contato com a empresa fornecedora da API porque dessa forma é certeza que eles iram conseguir ajuda-lo de forma pontual e orientada a API. Esse exemplo que demonstrei serve para qualquer API que você queira utilizar, desde que ela trabalhe com recebimento e retorno de dados em JSON
  11. Guilherme Luiz

    Url, Busca

    Não ficou claro qual a sua dúvida. Ao que me parece esse script foi feito sob o framework Laravel. Se você começar a "dissecar" as classes e dar uma olhada na documentação do framework, com certeza você terá uma clareza maior do que foi feito nele
  12. Guilherme Luiz

    CSS responsivo - agrupar boxes

    Veja o Bootstrap com ele você utiliza grids de uma forma muito simples. Mas ainda mais pra facilidar, veja o site Webflow É uma plataforma gratuita que da para criar webs responsivas com drag & drop bem bacana
  13. Guilherme Luiz

    Consultar em banco de dados ou ler arquivo?

    Um banco MySQL suporta uma TONELADA de consultas e eu penso que se a informação algum dia pode ser mudada eu prefiro sempre utiliza-lo porque um arquivo estático pode ficar em cache e usuários terem informações desatualizadas. Se os dados são "fixos" e não sofrem constante alterações, crie uma table em MySAM do mysql e tudo fica resolvido porque tabelas nesse formato são otimizadas para dados "estáticos". Caso você ainda assim prefira utilizar arquivo, prefira por arquivos em JSON, mais fácil de serem manipulados.
  14. Guilherme Luiz

    Campo com 3 casas decimais [Resolvido]

    Da uma olhada diretamente no repo. do git > https://github.com/plentz/jquery-maskmoney Pesquise pelas issues e pull requests para ver se é possivel fazer isso com esse script.
  15. Guilherme Luiz

    Exibir/Esconder div de acordo com o dia/hora

    De uma olhada na classe DateTime do próprio PHP. https://stackoverflow.com/questions/8722806/how-to-compare-two-dates-in-php https://www.php.net/manual/en/datetime.construct.php Pegue a data atual com date_create() e então utilize o date_diff para comparar com a data e hora que você quiser
  16. Guilherme Luiz

    Erro em mostrar os dados

    Oloko bixo, quantas queries e redundancia de código.. Esse código "não vale a pena" ajustar ao meu ver, mas sim refatorar, deletar e fazer tudo de novo. Leia sobre INNER JOIN / UNION ALL / MULTI_QUERY em relação do MySQL e isso vai te dar uma luz sobre como refatorar todas essas suas queries
  17. Guilherme Luiz

    [RESOLVIDO] EXIBIR DATA E HORÁRIO ATUAL EM UM "textbox" DE UM FORMULÁRIO PHP

    A variável $data foi "hard coded" para fins de exemplificação, mas para você pegar a data do dia utilize a função date() <?php $hoje = date('Y-m-d'); echo $hoje; ?> https://www.php.net/manual/pt_BR/function.date.php Recomendo que você assista os seguintes materiais, dessa forma você vai entender o que está fazendo ao invés de ficar perdendo tempo com achismos e testes frustrados.
  18. Guilherme Luiz

    [RESOLVIDO] EXIBIR "IP" DO VISITANTE EM UM CAMPO DO FORMULÁRIO TEXTBOX

    https://stackoverflow.com/questions/3003145/how-to-get-the-client-ip-address-in-php Veja o exemplo no link acima
  19. Guilherme Luiz

    [RESOLVIDO] EXIBIR DATA E HORÁRIO ATUAL EM UM "textbox" DE UM FORMULÁRIO PHP

    O jeito errado de se fazer: $data = "18/03/2020"; echo "<input type=\"text\" value=\"$data\">"; Dessa forma o seu input estará recebendo um valor de string generalizando, não sendo uma data e não sendo formatado da forma correta. O jeito que considero certo de se fazer: $data = "18/03/2020"; $dataInternacional = date('Y-m-d',strtotime($data)); echo "<input type=\"date\" value=\"{$data}\">"; Dessa forma você estará formatando a sua data, independente do modelo que ela venha, para o padrão internacional de data e a aplicando num input do tipo DATE e dessa forma o campo fica "responsivo" a data do html5 caso ele seja editavel.
  20. Guilherme Luiz

    Rank de Vitórias -> PHP

    faz o contador fora do while e então faça um if de verificação de acordo com o status e some +1 para cada situação que coincidir... por exemplo: $vitorias = 0; $derrotas = 0; while($data = mysqli_fetch_assoc($sql)){ if($data['status'] == 'vitoria'){ $vitorias++; } if($data['status'] == 'derrota'){ $derrotas++; } } echo "Vencedores: {$vitorias}".PHP_EOL; echo "Perdedores: {$derrotas}".PHP_EOL;
  21. Guilherme Luiz

    [RESOLVIDO] Campo Automático com Data e Horário em Tabela

    Vale a recomendação para trabalhar com campos de data no MySQL - Sempre utilize a coluna em formatos DATE, DATETIME ou TIMESTAMP - Sempre salve o horario em UTC e então aplique o fuso na visualização - Com campos DATE e DATETIME lembre-se de converter a data para o padrão Y-m-d H:i:s Portanto, ao salvar data em campo DATE/DATETIME converta a sua data! $data = "18/03/2020 11:10:24"; $dataSql = date("Y-m-d H:i:s",strtotime($data)); $query = "INSERT INTO tabela (nome,data) VALUES ('meu nome','{$dataSql}')"; ...
  22. Guilherme Luiz

    Carrinho de Compras PHP

    Eu recomendo criar um array de itens no carrinho de acordo com o tipo de produto, porque se você tiver o $id repetido porque ele é o $id do tipo de produto e não do produto em si, você sempre sofrerá com essas substituições e além disso facilitará demais a "mão de obra" para incluir, alterar ou excluir item do carrinho.
  23. React Native é para MOBILE somente. O que acontece é a galera usar a stack NodeJS + React + React Native onde o NodeJS fica como backend, o React para web e o React Native para mobile, mas também existem outras cross platform como ionic, flutter, entre outros A utilização da linguagem vai depender demais do que vocês precisam, do tipo de conhecimento e experiencia da equipe, e por isso neste caso, aproveitando que você tem uma equipe com 4 membros seria legal cada um trazer uma opção de stack para ser utilizada com os pontos pros e contras de cada uma porque vocês tem diversas opções Não existe certo ou errado nesse seu caso. O que existe é: O mais indicado a sua utilização
  24. Guilherme Luiz

    Programa em python estruturado

    kkk esses caras que vem pra ter resposta facil dos trampos da faculdade de TI é um sarro kkkk
  25. Guilherme Luiz

    Formatar data por extenso

    Depende... Essa data está em formato Date e é impressa nesse formato demonstrado ou é uma string aleatória? O que recomendo: Sempre utilize datas em formato DATE nunca STRING e dito isso você pode utilizar a função strtotime junto com date $date = date('Y-m-d H:i:s', strtotime($dateString)); Mas o que realmente recomendo ao trabalhar com datas de forma pouco mais abrangente é utilizar a classe nativa DateTime do PHP https://www.php.net/manual/pt_BR/datetime.createfromformat.php
×

Informação importante

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