Jump to content

All Activity

This stream auto-updates     

  1. Today
  2. As 7 linguagens de programação que você deve aprender em 2020
  3. Yesterday
  4. Jefferson andre

    Como pegar o retorno do ajax e mostrar na tela

    Muito obrigado, vou estudar suas informacoes.
  5. Olá, gostaria de saber qual a melhor maneira de selecionar e verificar a senha hash(senha) em um banco de dados e comparar com a senha inserida pelo usuário em um formulário de login. É mais adequado armazenar no BD o salt ? No exemplo abaixo eu criei o hash da senha antes de selecionar no banco: <?php include('conf.php'); $email = 'lala@123.com'; $senha = 'lala.123'; $custo = '08'; $salt = 'Cf1f11ePArKlBJomM0F6aJ'; $hash = crypt($senha, '$2a$' . $custo . '$' . $salt . '$'); $query_select = "SELECT email, password FROM usuarios WHERE email = '$email' AND password = '$hash'"; $select = mysqli_query($conexao,$query_select); if (mysqli_num_rows($select) == 1) { echo "Login Permitido"; } else { echo "Login ou senha invalidos"; } ?> Já neste exemplo eu selecionei o hash no banco para depois comparar com a senha inserida no formulário utilizando o password_verify(): <?php #----------------- INCLUDING FILE --> "conf.php" include('conf.php'); if (isset($_POST['submit'])) { $email = mysqli_real_escape_string($conexao, $_POST['email']); $password = mysqli_real_escape_string($conexao, $_POST['password']); $query_select_email = "SELECT email FROM usuarios WHERE email = '$email'"; $select_email = mysqli_query($conexao,$query_select_email); $query_select_password = "SELECT password FROM usuarios"; $select_password = mysqli_query($conexao,$query_select_password); while($array = mysqli_fetch_array($select_password)) { $logarray = $array['password']; if (password_verify($password, $logarray) && mysqli_num_rows($select_email) == 1) { echo "Login permitido"; } } } ?> Aceito qualquer dica relacionado a segurança e para melhorar o código, desde já agradeço.
  6. ShadowDLL

    Como pegar o retorno do ajax e mostrar na tela

    Se você deseja usar uma mesma funcionalidade para mais de um elemento, então deverá utilizar "classe", não "id". Isso ocorre porque os IDs devem ser exclusivos na página, e por sua vez, se houver mais que um, o JQuery, selecionará o primeiro e ignorar o restante. Segue teste, abaixo: CÓDIGO: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title> EXAMPLE </title> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> </head> <body> <h2>DOIS ELEMENTOS COM O MESMO ID</h2> <input type="text" id="f_test" /> <input type="text" id="f_test" /> <button id="btn_1">Preencher</button> <br /> <h2>DOIS ELEMENTOS COM A MESMA CLASSE</h2> <input type="text" class="s_test" /> <input type="text" class="s_test" /> <button id="btn_2">Preencher</button> <br /> <script type="text/javascript"> // PARA OS ID's $ ('#btn_1').on ('click',function() { $("#f_test").val ('Preenchido!'); }); // PARA AS CLASSES $ ('#btn_2').on ('click',function() { $(".s_test").val ('Preenchido!'); }); </script> </body> </html>
  7. José Peixoto

    Como fazer subconsultas: um passo a passo (Parte II)

    Motta, foi porque publiquei no ambiente errado. Perdão! Era pra ser como artigo. Como eu deleto essa publicação? não achei! Obrigado desde já!
  8. Jefferson andre

    Como pegar o retorno do ajax e mostrar na tela

    Muito obrigado pela ajuda, vou estudar o link que voce me passou. Agora o retorno esta preenchendo algumas divs como a $("#dados2") mas os campos de input nao com a mesma id. vou tentar entender o motivo. Em VFP existe comandos que atualizam campos individuais da tela por ex. thisform.pageframe1.page2.nomedolabel.refresh Imagino que deva existir algo assim para html ou no proprio ajax mas desconheço. Grato mais uma vez pelo suporte
  9. Olá pessoal, eu tenho um sistema de comentários que quando um "player" preenche esse comentário, ele vai direto para pagina inicial, funciona como um feedback, só que ele pode usar isso várias e várias vezes, eu queria que ele usasse apenas uma vez e não pudesse mais utilizar, sendo assim só seria possível usar uma vez. Ou q só poderia usar se tivesse x quantidades de pontos no banco de dados(eu tenho uma coluna com pontos) e a cada vez que ele usasse esse formulário(comentário), ele perderia 1 ponto,e quando não tivesse mais pontos, ele não poderia comentar. Alguém tem alguma ideia de como posso fazer isso? e qual funções utilizar? VALEUU!!!
  10. Last week
  11. Motta

    Como fazer subconsultas: um passo a passo (Parte II)

    Parte disto ficou como tópico , parte como Status , confuso.
  12. tii3030

    Sistema de login com PHP

    Olá pessoal, desenvolvi um pequeno código em PHP com a função de verificar e validar usuário e senha de um formulário, juntamente com o meu banco de dados MySql. Gostaria de saber como aprimorar o meu código para torna-lo mais seguro e mais próximo de algo "profissional". Lembrando que minha senha no banco está criptografada (PASSWORD_BCRYPT). <?php #----------------- INCLUDING FILE --> "conf.php" include('conf.php'); if (isset($_POST['submit'])) { #--------------------------------INPUTS ---------------------------------------------# $email = mysqli_real_escape_string($conexao, $_POST['email']); $password = mysqli_real_escape_string($conexao, $_POST['password']); #-----------------------#----------------------#-----------------_#-------------------# $query_select_email = "SELECT email FROM usuarios WHERE email = '$email'"; $select_email = mysqli_query($conexao,$query_select_email); $query_select_password = "SELECT password FROM usuarios"; $select_password = mysqli_query($conexao,$query_select_password); while($array = mysqli_fetch_array($select_password)) { $logarray = $array['password']; if (password_verify($password, $logarray)) { if (mysqli_num_rows($select_email) == 1) { $_SESSION['email'] = $email; header('location: XXX.html'); exit(); } } else { echo "Loguin ou senha incorretos"; } $logarray = '0'; } } ?>
  13. michelmir

    mostrar/esconder

    Vê se te atende. No caso utilizei Jquery para ocultar e mostrar os formulários Cadastre-se e login. Quanto ao style utilizei o Bootstrap: <!DOCTYPE html> <html lang="pt-br"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="utf-8"> <head> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> <head> <body> <div class="container" style="max-width:700px;"> <br> <div align="center"> <p><h2>Selecione uma das opções abaixo</h2></p> <br> <div class="row"> <div class="col"><button type="button" class="btn btn-info btn-block" id="cadasbtn">CADASTRAR-SE</button></div> <div class="col"><button type="button" class="btn btn-info btn-block" id="entrarbtn">FAZER LOGIN</button></div> </div> </div> <br> <div class="card" id="formlogin"> <div class="card-header"> FAÇA LOGIN </div> <div class="card-body"> <blockquote class="blockquote mb-0"> <form> <div class="form-group"> <label>E-mail</label> <input type="email" class="form-control" id="e-mail" placeholder="Insira o seu e-mail de cadastro"> </div> <div class="form-group"> <label>Senha</label> <input type="password" class="form-control" id="senha" placeholder="Insira a sua senha"> </div> <button type="submit" class="btn btn-primary btn-block">FAZER LOGIN</button> </form> </div> </blockquote> </div> <div class="card" id="formcadas"> <div class="card-header"> CADASTRE-SE </div> <div class="card-body"> <blockquote class="blockquote mb-0"> <form> <div class="form-group"> <label>E-mail</label> <input type="email" class="form-control" id="e-mail" placeholder="Insira o seu e-mail de cadastro"> </div> <div class="form-group"> <label>Senha</label> <input type="password" class="form-control" id="senha" placeholder="Insira a sua senha"> </div> <button type="submit" class="btn btn-primary btn-block">CADASTRAR</button> </form> </div> </blockquote> </div> </div> <br> </body> </html> <script> $('#formcadas').hide(); $('#formlogin').hide(); </script> <script> $(document).ready(function(){ $("#entrarbtn").click(function(){ $("#formlogin").show(); $("#formcadas").hide(); }); $("#cadasbtn").click(function(){ $("#formlogin").hide(); $("#formcadas").show(); }); }); </script>
  14. ShadowDLL

    Dois forms na mesma pagina, o primeiro enviando dados para o segundo

    Suponho que a resposta em seu novo tópico irá solucionar o problema...
  15. ShadowDLL

    Como pegar o retorno do ajax e mostrar na tela

    Vamos lá! Repare que você tenta "chamar" o atributo "conteudo" em "mensagem_retorno", porém o mesmo não foi definido... Chamada do atributo: $("#dados2").html(mensagem_retorno.conteudo); Onde os atributos foram definidos: $conteudo = json_encode( array ( // AQUI ESTAO OS ATRIBUTOS QUE VOCE DEFINIU // ATRIBUTO => "VALOR DO ATRIBUTO" "valor_hr_viagem" => $linha['valor_hr_viagem'], "valor_por_km" => $linha['valor_por_km'], "valor_apos_18" => $linha['valor_apos_18'], "valor_sabado" => $linha['valor_sabado'], "valor_domingo" => $linha['valor_domingo'], "id" =>$linha['id'] ) ); Para o mesmo funcionar, o atributo "conteudo" deveria ser definido, como no exemplo a seguir: $conteudo = json_encode( array ( "valor_hr_viagem" => $linha['valor_hr_viagem'], "valor_por_km" => $linha['valor_por_km'], "valor_apos_18" => $linha['valor_apos_18'], "valor_sabado" => $linha['valor_sabado'], "valor_domingo" => $linha['valor_domingo'], "id" =>$linha['id'], "conteudo" => "Algo" // ADICIONADO ) ); #============ Segue um exemplo para melhor compreensão: <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> </head> <body> <button class="btn btn-default" id="buscar3" type="button"> Buscar2 </button> <div id="dados2">Aqui será inserindo o resultado da consulta...</div> <div id="valor_fixo_cliente">teste</div> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script> function buscar3($id_cliente) { $.ajax ({ type: "POST", dataType: "json", url: "busca3.php", beforeSend: function (mensagem_retorno) { $("#dados2").html("Carregando..."); $("#valor_fixo_cliente").html("Carregando..."); }, data: {id_cliente: "834"}, // EM CASO DE SUCESSO DA CONSULTA // O OBJETO SERÁ ARMAZENADO EM // mensagem_retorno success: function (mensagem_retorno) { // APRESENTA O OBJETO NO CONSOLE console.log (mensagem_retorno); // NESTE EXEMPLO, CHAMAREMOS O ATRIBUTO // valor_apos_18, ENTRE OS EXISTENTES, // QUE SÂO: // valor_hr_viagem, valor_por_km, // valor_apos_18, valor_sabado // valor_domingo e id // $("#dados2").html(mensagem_retorno.valor_apos_18); } }); } $('#buscar3').click(function () { buscar3($("#id_cliente").val()) }); </script> </body> </html> <?php require('conexao_dbo.php'); include('error_report.php'); $id_procurar = $_POST['id_cliente']; $sql = "SELECT * FROM clientes WHERE id='$id_procurar'"; $sql = $arquivo->query($sql); if($sql->rowCount()>0) { $linha = $sql->fetch(); $conteudo = json_encode( array ( "valor_hr_viagem" => $linha['valor_hr_viagem'], "valor_por_km" => $linha['valor_por_km'], "valor_apos_18" => $linha['valor_apos_18'], "valor_sabado" => $linha['valor_sabado'], "valor_domingo" => $linha['valor_domingo'], "id" =>$linha['id'] ) ); echo $conteudo; } ?> #============ Caso seja de seu interesse estudar melhor segue link: https://dicasdeprogramacao.com.br/o-que-e-json/
  16. Olá! Recentemente fiz uma postagem aqui no fórum a respeito de se carregar valores em um input text baseando-se na opção selecionada em uma select box, onde obtive uma solução. Por conta disso resolvi adicionar um complemento neste meu código onde o mesmo deve carregar valores corretamente dentro de uma input text utilizando o plugin TypeAhead.js e o evento onchange do Jquery. Como forma de demonstrar a minha dúvida em funcionamento, criei uma página como forma de testar a solução. O que ocorre é que quando seleciona uma opção no select box "Categorias", o Ajax manda um request para o php script onde o mesmo retorna os valores corretamente em JSON conforme a imagem do console do navegador Chrome abaixo: Até aqui os valores relacionados com a opção selecionada no select box "Categorias" são carregados corretamente porém se eu não atualizar a página "F5" e ao mesmo tempo eu selecionar alguma outra opção dentro do select box, o input text carrega além dos valores relacionados, todos os valores não relacionados com a opção selecionada ou seja, o input text somente carrega os valores corretamente se eu atualizar a página em questão. Abaixo uma imagem demonstrando os valores carregados em uma input text quando seleciono uma outra opçao no select box quando não se atualiza a página. Todos os valores não relacionados também são carregados: Abaixo publico o html e os scripts Ajax, Typeahead e PHP que estou utilizando neste projeto: HTML <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="utf-8"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"> <!-- jQuery library --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <!-- jQuery UI library --> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js"></script> </head> <body> <div class="container"> <br> <h1>DYNAMIC TWITTER TYPEAHEAD</h1> <br> <div class="row"> <?php // Include the database config file include_once 'dbConfig.php'; // Fetch all the country data $query = "SELECT * FROM categorias ORDER BY categoria ASC"; $result = $db->query($query); ?> <!-- categoria dropdown --> <div class="col-md-4"> <select id="categoriaFK" name="categoriaFK" class="form-control"> <option value="">seleciona categoria</option> <?php if($result->num_rows > 0){ while($row = $result->fetch_assoc()){ echo '<option value="'.$row['categoriaID'].'">'.$row['categoria'].'</option>'; } }else{ echo '<option value="">Categoria não encontrada</option>'; } ?> </select> </div> <div class="col-md-4" id="prod"> <div ><input type="text" name="produtos" id="produtos" class="form-control input-lg typeahead" autocomplete="off" placeholder="" /></div> </div> <div class="col-md-4"> <div id="imagem" name="imagem"></div> </div> </div> </div> </body> </html> No script abaixo, o Ajax envia um request para o script PHP que por sua vez retorna os valores em JSON para o Ajax que envia para o TypeAhead e carrega o input text com valores relacionados. Após selecionar uma opção no input text, o Jquery envia um valor relacionado para a div "#imagem" : $(document).ready(function(){ var produtos; var nomes = []; // array var lista = {}; // objeto $('#categoriaFK').on('change', function(){ var queryID = $(this).val(); $.ajax({ url:"fetch.php", method:"POST", data:{categoria:queryID}, dataType:"json", success:function(data){ console.log(data); $.each(data, function(i, optionHtml){ $('#produtos').append(optionHtml); }); $("#imagem").empty(''); $(".typeahead").val(''); produtos = data; } }); $('.typeahead').typeahead({ source: function(query, result) { $.each(produtos, function(idx, item){ if(!~nomes.indexOf(item.nomeProduto)) nomes.push(item.nomeProduto); lista[item.nomeProduto] = item.imagem; }); return result(nomes); }, afterSelect: function (data) { var img = lista[data]; $('#imagem').html(img); }, }); }); }); Abaixo, o php script que seleciona os valores baseando-se no valor selecionado do select box e os envia em formato JSON para o Ajax: <?php require_once 'dbConfig.php'; if(!empty($_POST["categoria"])){ $query = " SELECT * FROM produtos WHERE categoriaFK = ".$_POST['categoria']." "; $result = $db->query($query); $data = array (); if ( $result->num_rows > 0 ) { while($row = $result->fetch_assoc ()) { $data[] = $row; } header("Content-type: application/json; charset=utf-8 cache-control: no-cache, no-store, must-revalidate"); echo json_encode($data); exit(); } } ?> No caso como mencionado acima, nesta página que criei demonstra o funcionamento de todo o código acima, porém acredito que devo modificar o script para que o mesmo carregue valores corretamente quando seleciono alguma opção no select box "Categorias" sem precisar atualizar a página para que o mesmo carregue corretamente. Como posso proceder? Desde já agradeço a atenção de todos.
  17. guilomaker

    Sistema para gerar QR Code Dinâmico

    Bom dia Galera, faz um bom tempo que não programo mais, e estou querendo fazer uma tattoo de um qr code e desenvolver uma pagina com informações minhas, como tipo sanguíneo, dador de órgãos, alergias e etc. ate ai tudo bem, minha preocupação é gerar esse qr cod e poder fazer manutenção no mesmo, trocando só o destino dele caso precise, já vi que tem sites que geram o qr cod e você pode mudar através do mesmo, mas e se este site sair do ar? essa e minha preocupação.
  18. juliosertori

    [Resolvido] Produto Mais Vendido ( Data em outra Tabela )

    Deu certo amigo, estava testando mas colocando quantidade em produto diferente do mês kkkk, mas está funcionando, obrigado!
  19. Jefferson andre

    Como pegar o retorno do ajax e mostrar na tela

    Bom dia, alguem me ajude a fazer funcionar este pequeno script usando ajax. Preciso pegar a resposta do console e colocar na tela na id buscar2 Resposta do console: {"valor_hr_viagem":"10","valor_por_km":"8","valor_apos_18":"7","valor_sabado":"6","valor_domingo":"5","id":"834"} teste_ajax.html <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> </head> <body> <button class="btn btn-default" id="buscar3" type="button">Buscar2</button> <div id="dados2">Aqui será inserindo o resultado da consulta...</div> <div id="valor_fixo_cliente">teste</div> <!-- SCRIPT NECESSARIO PARA O AJAX FUNCIONAR // <script src="jquery.2.1.3.min.js"></script> !--> <script src="jquery.2.1.3.min.js"></script> <script> function buscar3($id_cliente) { //O método $.ajax(); é o responsável pela requisição $.ajax ({ //Configurações type: "POST",//Método que está sendo utilizado. dataType: "json",//É o tipo de dado que a página vai retornar. url: "busca3.php",//Indica a página que está sendo solicitada. //função que vai ser executada assim que a requisição for enviada beforeSend: function (mensagem_retorno) { $("#dados2").html("Carregando..."); $("#valor_fixo_cliente").html("Carregando..."); }, data: {id_cliente: "834"},//Dados para consulta //função que será executada quando a solicitação for finalizada. success: function (mensagem_retorno) { console.log (mensagem_retorno); $("#dados2").html(mensagem_retorno.conteudo); } }); } $('#buscar3').click(function () { buscar3($("#id_cliente").val()) }); </script> </body> </html> buscar3.php <?php require('conexao_dbo.php'); include('error_report.php'); $id_procurar = $_POST['id_cliente']; $sql = "SELECT * FROM clientes WHERE id='$id_procurar'"; $sql = $arquivo->query($sql); if($sql->rowCount()>0) { $linha = $sql->fetch(); $conteudo = json_encode( array ("valor_hr_viagem" => $linha['valor_hr_viagem'], "valor_por_km" => $linha['valor_por_km'], "valor_apos_18" => $linha['valor_apos_18'], "valor_sabado" => $linha['valor_sabado'], "valor_domingo" => $linha['valor_domingo'], "id" =>$linha['id'] ) ); echo $conteudo; } ?> estrutura da tabela clientes em anexo
  20. juliosertori

    [Resolvido] Produto Mais Vendido ( Data em outra Tabela )

    Assim funciona até eu colocar o MONTH(p.data_pedido) SELECT sum(c.quantidade) as total, c.id_empresa, c.nome_produto, p.finalizado, p.data_pedido FROM pedidos_produtos AS c JOIN pedidos AS p ON c.id_pedido = p.id WHERE c.id_empresa = '".$_CPD['CompanyId']."' AND p.finalizado = '1' AND MONTH(p.data_pedido) = '$mes_atual' group by c.id_produto order by total desc limit 0,10 pode me ajudar a encontra o erro nessa parte? obrigado
  21. Motta

    [Resolvido] Produto Mais Vendido ( Data em outra Tabela )

    @juliosertori leia sobre joins.
  22. Olá tudo bem? Tenho uma tabela onde registro os produtos que vendeu, com o ID do Pedido, e preciso listar os mais vendidos por período. Tenho o SQL: SELECT SUM(quantidade) AS quantidade, id_produto, nome_produto FROM pedidos_produtos WHERE id_empresa = '".$_CPD['CompanyId']."' GROUP BY id_produto order by quantidade desc limit 0,10 Lista perfeitamente, mas o problema é que a DATA está na tabela PEDIDOS, como linkar? Obrigado!
  23. Rodrigo Biaggio

    Percorrer Array

    Senhores, conseguem me ajudar a evoluir na questão abaixo?? Tenho esse código simples, aonde chamo uma API e percorro um array e pego apenas um campo e faço a soma. Só que preciso retornar além do campo "consumedHostUnits" e o campo "name", conforme print. Alguém poderia me dar uma luz, como fazer isso? O resultado seria mostrando Name: APIGateway | ConsumedHostsUnits: 2 Segue o HTML: <!DOCTYPE html> <html lang="pt-br"> <title>API Management</title> <head> <meta charset="8"> </head> <body> <script> var urlapi = ''; function fazerRequisicao(){ var url = urlapi + document.getElementById('hostgroup').value; //var url = urlapi; var xhttp = new XMLHttpRequest(); xhttp.open("GET", url, false); xhttp.send(); var arrayElements = xhttp.responseText.split(','); var i; var sumComsumed = 0.0; for (i = 0; i < arrayElements.length; i++) { if(arrayElements[i].includes("consumedHostUnits")) { sumComsumed = sumComsumed + +arrayElements[i].split(":")[1]; } } document.getElementById("div-responsetext").innerHTML = sumComsumed; } </script> <button onclick="fazerRequisicao();">Pesquisar</button> <input type="text" id="hostgroup" style="width: 100px;"> <hr/> <div id="div-responsetext"></div> </body> </html> Obrigado.
  24. Jefferson andre

    Dois forms na mesma pagina, o primeiro enviando dados para o segundo

    Ainda nao consegui pegar os campos e colocar no formulario, no buscar3 tudo esta com json_encode Segue o retorno do console 10{"valor_hr_viagem":"10","valor_por_km":"8","valor_apos_18":"7","valor_sabado":"6","valor_domingo":"5"}
  25. ShadowDLL

    Atribuir valor de uma textarea em uma var

    Segue exemplo, abaixo: CÓDIGO: <form method="post"> <label for="algo">Algo:</label> <br /> <textarea id="algo" name="algo" rows="3"></textarea> <br /> <button type="submit">Enviar</button> </form> <?php if (isset($_POST['algo'])) { echo "<p>".$_POST['algo']."</p>"; } ?>
  26. ShadowDLL

    Dois forms na mesma pagina, o primeiro enviando dados para o segundo

    Qualquer dúvida envie mensagem que trabalharemos no mesmo.
  1. Load more activity
×

Important Information

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