Ir para conteúdo

POWERED BY:

Williams Duarte

Members
  • Total de itens

    3978
  • Registro em

  • Última visita

  • Dias vencidos

    47

Tudo que Williams Duarte postou

  1. Williams Duarte

    Dificuldades para criar arrays de outro array multidimensional

    Faz o seguinte, use primeiro array_reduce e pega as notas e monte o array diciplina_notas, depois ou use map/filter para os demais dados e faça um merge. De uma olhada aqui no manual e estude funções para array https://www.php.net/manual/pt_BR/ref.array.php Exemplo $data = array_reduce($dados, function($accumulator, $item) { $accumulator['nome'][] = $item['nome']; $accumulator['etapa'][] = $item['etapa']; $accumulator['pos'][] = $item['pos']; $accumulator['not_dados'][] = $item['not_dados']; return $accumulator; }, []); print_r($data); Saída Array ( [nome] => Array ( [0] => Nome do Aluno [1] => Nome do Aluno [2] => Nome do Aluno ) [etapa] => Array ( [0] => 7º ANO [1] => 8º ANO [2] => 9º ANO ) [pos] => Array ( [0] => 7 [1] => 8 [2] => 9 ) [not_dados] => Array ( [0] => Array ( [0] => Array ( [0] => PORTUGUES [1] => 7,5 [2] => 120H [3] => AP ) [1] => Array ( [0] => REDAÇÃO [1] => 8,5 [2] => 40H [3] => AP ) [2] => Array ( [0] => HISTÓRIA [1] => 9,0 [2] => 80H [3] => AP ) [3] => Array ( [0] => GEOGRAFIA [1] => 7,0 [2] => 80H [3] => AP ) ) [1] => Array ( [0] => Array ( [0] => PORTUGUES [1] => 7,0 [2] => 120H [3] => AP ) [1] => Array ( [0] => HISTÓRIA [1] => 8,5 [2] => 80H [3] => AP ) [2] => Array ( [0] => REDAÇÃO [1] => 9,0 [2] => 40H [3] => AP ) [3] => Array ( [0] => GEOGRAFIA [1] => 8,5 [2] => 80H [3] => AP ) ) [2] => Array ( [0] => Array ( [0] => PORTUGUES [1] => 8,0 [2] => 120H [3] => AP ) [1] => Array ( [0] => HISTÓRIA [1] => 8,5 [2] => 80H [3] => AP ) [2] => Array ( [0] => REDAÇÃO [1] => 9,0 [2] => 40H [3] => AP ) [3] => Array ( [0] => GEOGRAFIA [1] => 8,0 [2] => 80H [3] => AP ) [4] => Array ( [0] => QUIMICA [1] => 8,5 [2] => 80H [3] => AP ) ) ) ) Bom não vou fazer para você, que o trampo é seu, estamos aqui só para orientar. Vai postando oque fez, que a comunidade te ajuda!
  2. Williams Duarte

    Como mantar o usuário logado e dar logoff por inatividade?

    Segue um tutorial de exemplo: http://www.devwilliam.com.br/php/sistema-de-login-com-cookies-no-php http://www.devwilliam.com.br/php/sistema-de-login-com-ajax-e-php
  3. Williams Duarte

    Como mantar o usuário logado e dar logoff por inatividade?

    Cookie ou localStorage Armarzene o id do User em algum lugar com data de expiração, Verifique se a data esta expirada e pede para logar novamente, excluindo os Cookies ou localStorage Nada mais que um if, se o checkbox for marcado, mantenha os dados no Cookie ou localStorage, Senão, mantenha o logado em Session do PHP ou SessionStorage do Browser https://www.treinaweb.com.br/blog/quando-usar-sessionstorage-e-localstorage/
  4. Williams Duarte

    Input não recebe valor pelo $("input").val("meu novo valor");

    Faz um teste com uma callback $("input[type=text]").keyup(function(){ alert(this.value); });
  5. Williams Duarte

    Pegar dados de um While de uma Classe com Estrutura Preprada através de um novo objeto

    De uma olha nestes padrões https://code.tutsplus.com/pt/tutorials/design-patterns-the-simple-factory-pattern--cms-22345 https://code.tutsplus.com/pt/tutorials/design-patterns-the-facade-pattern--cms-22238
  6. Williams Duarte

    Pegar dados de um While de uma Classe com Estrutura Preprada através de um novo objeto

    Tente separar lógica, banco de dados, regras de negócio de seu algoritimo, e hospedagens será o de menos. Exemplo, com um único objeto, voce ilimina praticamente sete foreachs iguais, oque muda são os parâmetros public function retornarDadosDoElemento($dados_elet) { if(is_array($dados_elet)){ $tipos = array(); foreach ($dados_elet as $key => $thing) { $tipos[$key] = $thing; } return $tipos; } return false; } // uso $var = $this->retornarDadosDoElemento($dados_elet->valor); Estes SQL, também estao se repetindo $ativo=$this->ativo=1; $sql_1=$conexao->prepare("SELECT i.id,i.id_produto_tipo,i.id_produto_subtipo,t.tipo,n.tipo_nome FROM dados_anuncio i LEFT JOIN tipo_produto t ON (t.id = i.id_produto_tipo)LEFT JOIN subtipo_produto n ON (n.id = i.id_produto_subtipo) WHERE i.ativo=? AND n.tipo_nome LIKE '%el%' ORDER BY i.id DESC LIMIT ".$limit.""); $sql_1->bind_param('s',$ativo); $sql_1->execute(); $sqlL_1=$sql_1->bind_result($id,$id_produto_tipo,$id_produto_subtipo,$tipo, $tipo_nome); O que muda são alguns parametros, repare que, se a dados se repetindo, ha uma necessidade de refatoração. Sendo assim abstrai em uma outras classes. Depois injete por meio de dependencias Abaixo é nescessario em OOP while ($sql_1->fetch()) { $this->id[]=$id; $this->tipo[]=$tipo; $this->tipo_nome[]=$tipo_nome; $this->foto_exibicao[]=$foto_exibicao; $this->foto_grande[]=$foto_grande; $this->foto_titulo[]=$foto_titulo; $this->valor[]=$valor; } separe isto em uma função da classe e retorne somente o fetch return $sql->fetch(); Voce pode passar a conexão como dependencia. Resumindo, seu problema não é qualquer lib, mas sim compreender oque é orientação objetos, e a conexão sera de menos. Há não ser que, o php não de suporte a algumas funções de conexão. Por hora desconheço.
  7. Williams Duarte

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

    $result['data'][$key] = array( $img, $value['n_titulo'], $value['name'], $value['cpf'], implode(json_decode($value['dependente_id']), ','), $availability, $buttons );
  8. Williams Duarte

    API do Whatsapp enviar arquivos

    Já verificou se existe esta possbilidade de envio, por esta API?
  9. Williams Duarte

    Dificuldades para criar arrays de outro array multidimensional

    Com as novidades versão do php, a 7.4, você consegue fazer isto de uma forma mais simples. Entrou na parada Arrow Functions e Spread Operator duas funções no maximo você extrai tudo isto ai, e monta da forma como quer! https://www.php.net/manual/pt_BR/function.array-map.php https://www.php.net/manual/pt_BR/function.array-filter.php
  10. Williams Duarte

    TOKEN JWT e atenticação em diversos níveis

    Neste caso, entra o ACL "Regras de Acesso" https://pt.wikipedia.org/wiki/Lista_de_controle_de_acesso Mas as autorizações continuam pelo JWT, independente que se tenha um endpoint para Users Admin e outro para Users "comuns", vou dar um exemplo do meu endpoint users Quando eu autentico no sistema, me retorna o seguinte resultado. { "data": { "id": 1, "username": "DUARTE", "email": "example@outlook.com", "email_verified_at": null, "active": true, "admin": true, "last_login": "2020-04-21 00:44:42" }, "meta": { "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODAwMFwvYXBpXC9hZG1pbmlzdHJhdGl2ZVwvYXV0aFwvbG9naW4iLCJpYXQiOjE1ODc0OTIxNDQsImV4cCI6MTU4NzQ5NTc0NCwibmJmIjoxNTg3NDkyMTQ0LCJqdGkiOiJUS1hRY3JRcmVxaUZqb0R0Iiwic3ViIjoxLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.UeTE5E4eYZOO9S5wNWCU3I3nA1CZYfc3nxchn6_NE9k", "token_type": "bearer", "expires_in": 3600 } } A segunda chamada, envio o token de volta, "invalido este token, renovo e trago outro no corpo do json". E o ID do usuario envio via post e seleciono todos o meus dados do banco e as regras de acesso "ACL" e as mantenho em Local Storage no navegador, para uso da aplicação SPA. { "data": { "id": 1, "username": "WSDUARTE", "email": "example@outlook.com", "email_verified_at": null, "active": true, "admin": true, "last_login": "2020-04-21 15:02:24", "profiles": null, "phones": [ { "id": 1, "user_id": 1, "phone": "(24) 95922-7390" } ], "addresses": [], "roles": [ { "id": 1, "name": "admin", "label": "Administrator", "standard": true, "permissions": [ { "id": 1, "name": "browser", "label": "Browser", "standard": true, }, { "id": 2, "name": "create", "label": "Create", "standard": true, }, { "id": 3, "name": "list", "label": "List", "standard": false, }, { "id": 4, "name": "edit", "label": "Edit", "standard": true, }, { "id": 5, "name": "delete", "label": "Delete", "standard": true, } ] } ] }, , "meta": { "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODAwMFwvYXBpXC9hZG1pbmlzdHJhdGl2ZVwvYXV0aFwvbG9naW4iLCJpYXQiOjE1ODc0OTIxNDQsImV4cCI6MTU4NzQ5NTc0NCwibmJmIjoxNTg3NDkyMTQ0LCJqdGkiOiJUS1hRY3JRcmVxaUZqb0R0Iiwic3ViIjoxLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.UeTE5E4eYZOO9S5wNWCU3I3nA1CZYfc6sxchn6_8s9k", "token_type": "bearer", "expires_in": 604800 } } Há várias formas de se fazer isto, enviar o id no corpo do token, fora, pegar por id, sessão e comparar o que está no token, a lógica é esta e usar SSL. PS. eu tenho aplicação php, que se comunica com Endpoints em Node, com a mesma secret. Não há uma receita de bolo! Obs.: Na duvida e use um Framework tipo o Lumen, e instala o pacote de JWT e já estara pronto para usar. Mas ele vai pela mesma logica acima. Fiz uma com node.js ea mesma filosofia. Voce tem que saber a base de como tudo funciona.
  11. Williams Duarte

    TOKEN JWT e atenticação em diversos níveis

    JWT é uma autorização é não autenticação. A autenticação permanece normal, oque você gera é um token de autorização após o login em seu sistema. Pode usar normalmente, mas isso somente para o endpoint onde foi autenticado, se quiser usar em outra api, tem que enviar outros tipos de headers, e claro o Token do JWT A secret, deve ficar em seu servidor, é a chave que verificara se o token é valido ou não. Tem que enviar de volta o token gerado por header Authorization: Bearer <token> Você pode criar um middleware que faz esta verificação para liberar as rotas da api. Se quiser que sua aplicação se comunique com varios endpoints em maquina distintas, mantenha sempre a mesma key secret neste servidores, e bem seguros. Segue um exemplo basico de uso do JWT https://www.sitepoint.com/php-authorization-jwt-json-web-tokens/
  12. Williams Duarte

    [Resolvido] Editar layout/design no laravel

    [Cache] Pelo terminal limpe os caches! php artisan cache:clear
  13. Williams Duarte

    Cadastrar indivíduo com endereços e telefones múltiplos

    Modele o banco de 1 para N
×

Informação importante

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