Jump to content
Motta

As 7 linguagens de programação que você deve aprender em 2020

Recommended Posts

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By klonder
      Olá a todos(as)!
      Estava há 3 dias pesquisando sobre como resolver um problema que estava enfrentando em meu sistema, que consistia no seguinte:
      Implantar um Combobox com dados vindos do banco. Esse combobox deveria ser editável e apresentar os valores em seu popup suspenso. À medida em que o usuário fosse digitando, o autocomplete faria a busca em todos os valores já cadastrados e mostraria os compatíveis (procedimento até então comum em qualquer autocomplete). Todavia, o combobox só poderia perder o foco caso o texto inserido fosse exatamente igual a um dos valores existentes no popup, ou seja, não poderia ser  inserido nada que já não estivesse cadastrado anteriormente e presente na lista de valores.
      Após muito pesquisar, cheguei a um resultado muito satisfatório que compartilho com vocês, visto que varri a internet inteira à procura desse código e não encontrei em lugar nenhum. PyQt5 é extremamente pobre em tutoriais, principalmente em português.
       
      Segue o código que poderá ajudar quem precise:
      from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QComboBox, QLineEdit, QCompleter from PyQt5.QtCore import QSize, Qt, QSortFilterProxyModel, QStringListModel class Ui_Autocomplete(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 200, 800, 600) self.setWindowTitle('Autocomplete com combobox') self.cboxEstado = QComboBox(self) self.cboxEstado.move(50, 50) self.cboxEstado.addItem("Acre") self.cboxEstado.addItem("Amazonas") self.cboxEstado.addItem("Amapá") self.cboxEstado.addItem("Pará") self.cboxEstado.addItem("Rondônia") self.cboxEstado.addItem("Roraima") self.cboxEstado.addItem("Tocantins") self.cboxEstado.addItem("Distrito Federal") self.cboxEstado.addItem("Goiás") self.cboxEstado.addItem("Mato Grosso") self.cboxEstado.addItem("Mato Grosso do Sul") self.cboxEstado.addItem("Alagoas") self.cboxEstado.addItem("Bahia") self.cboxEstado.addItem("Ceará") self.cboxEstado.addItem("Maranhão") self.cboxEstado.addItem("Piauí") self.cboxEstado.addItem("Pernambuco") self.cboxEstado.addItem("Paraíba") self.cboxEstado.addItem("Rio Grande do Norte") self.cboxEstado.addItem("Sergipe") self.cboxEstado.addItem("Paraná") self.cboxEstado.addItem("Rio Grande do Sul") self.cboxEstado.addItem("Santa Catarina") self.cboxEstado.addItem("Espírito Santo") self.cboxEstado.addItem("Minas Gerais") self.cboxEstado.addItem("São Paulo") self.cboxEstado.addItem("Rio de Janeiro") self.cboxEstado.setEditable(True) self.cboxEstado.completer().setCompletionMode(QCompleter.PopupCompletion) self.cboxEstado.completer().setFilterMode(Qt.MatchContains) self.cboxEstado.completer().setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.cboxEstado.focusOutEvent = self.pedeuFoco self.leRegiao = QLineEdit(self) self.leRegiao.move(250,50) self.leRegiao.resize(200, 22) def pedeuFoco(self,event): occur = 0 for i in range(len(self.cboxEstado)): if self.cboxEstado.currentText() == self.cboxEstado.itemText(i): occur = occur+1 if occur == 0: self.cboxEstado.lineEdit().setFocus() self.cboxEstado.lineEdit().selectAll() else: #Retira o cursor do widget QComboBox.focusOutEvent(self.cboxEstado,event) if __name__ == '__main__': import sys app = QApplication(sys.argv) mainWin = Ui_Autocomplete() mainWin.show() sys.exit(app.exec_())  
       
    • By Lobo_RJ
      Código muito suspeito em javascript - Recebi de um amigo um link muito suspeito para o site iinet.com, me chamou a atenção porque utiliza o protocolo HTTP. Na página principal deste site, outro link remete à página do site easystreet.com, que também utiliza o protocolo HTTP. Realizei uma pesquisa no whois.net e o domínio iinet.com foi localizado, mas o domínio easystreet.com não foi localizado. Foi então que decidi inspecionar o código da página inicial de cada um do domínios e me chamou a atenção o código abaixo, encontrado na página inicial do domínio easystreet.com:
       
      <!doctype html>
      ...
      <link rel="pingback" href="http://easystreet.com/xmlrpc.php">
      ...
      <script data-avast-pam="y" type="text/javascript" name="AVAST_PAM_submitInjector">
            (function _submitInjector() {
              var f = document.querySelectorAll("form")[0]; // eslint-disable-line no-undef
              if (!f._avast_submit) {
                f._avast_submit = f.submit;
              }
              try {
                Object.defineProperty(f, "submit", {
                  get: function get() {
                    return function (prev_submit) {
                      prev_submit.call(this);
                      if (this._avast_inside_submit) {
                        return;
                      }
                      this._avast_inside_submit = true;
                      var evt = document.createEvent("CustomEvent");
                      evt.initEvent("scriptsubmit", true, true); // bubbling & cancelable
                      this.dispatchEvent(evt);
                      delete this._avast_inside_submit;
                    }.bind(this, this._avast_submit);
                  },
                  set: function set(submitFunc) {
                    this._avast_submit = submitFunc;
                  }
                });
              } catch (ex) {
                // ignored
              }
            })();
      </script>
      ...
      </html>
       
      Eu fiquei surpreso quando fiz uma pesquisa acerca da existência de algum arquivo do Avast denominado PAM e encontrei um arquivo C:\ProgramData\AVAST Software\Avast\pam\pam.json contendo dados como abaixo:
       
      {
        "json_version": 14,
        "update_frequency": 432000,
        "services": [
          {
            "version": 8,
            "icon_url": "https://pamcdn.avast.com/pamcdn/icons/facebook_com.png",
            "popular": 1,
            "url": "facebook.com",
            "login_url": "https://www.facebook.com",
            "name": "Facebook"
          },
          {
            "version": 8,
            "icon_url": "https://pamcdn.avast.com/pamcdn/icons/instagram_com.png",
            "popular": 1,
            "url": "instagram.com",
            "login_url": "https://www.instagram.com/accounts/login/",
            "name": "Instagram"
          },
          {
            "version": 12,
            "icon_url": "https://pamcdn.avast.com/pamcdn/icons/imdb_com.png",
            "popular": 0,
            "url": "imdb.com",
            "login_url": "https://www.imdb.com/registration/signin",
            "name": "IMDB"
          },
      ... (centenas de outros)
      }
       
      Eu não possuo conhecimento aprofundado de javascript, mas a existência do pingback (<link rel="pingback" href="http://easystreet.com/xmlrpc.php">) me levantou a suspeita de que este seja um exploit destinado à um ataque DDoS ou coisa pior como a coleta de credenciais de acesso dos usuários que cliquem nos links que levem às páginas do domínio easystreet.com, por isto eu venho aqui pedir a ajuda dos amigos que possuem um maior conhecimento de javascript.
       
      Desde já eu agradeço por qualquer colaboração.
       
      Lobo
      "Sempre aprendendo..."
    • By RSN
      Boa noite,
      Estou utilizando filter para filtrar as requisições porém está permitindo acessar as páginas mesmo sem o usuário estar logado.
      package filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import beans.Usuario; import dao.DaoUsuario; @WebFilter(urlPatterns={"/*"}) public class FilterAutenticacao implements Filter{ //faz alguma coisa quando a aplicação é derrubada @Override public void destroy() { } //intercepta todas as requisições @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpSession session = req.getSession(); String urlParaAutenticar = req.getServletPath(); // retorna null caso não esteja logado Usuario usuario = (Usuario) session.getAttribute("usuario"); if (usuario == null && !urlParaAutenticar.equalsIgnoreCase("/pages/ServletAutenticacao")){ // usuário não logado RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp?url="+urlParaAutenticar); dispatcher.forward(request, response); return;// para o processo para redirecionar } // executa as ações do request e response chain.doFilter(request, response); } // executa alguma coisa quando a aplicação é iniciada @Override public void init(FilterConfig arg0) throws ServletException { } } package servlet; import java.io.IOException; import java.net.InetAddress; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import dao.DaoLogin; import dao.DaoOcorrenciaAcesso; import beans.OcorrenciaAcesso; import beans.Usuario; @WebServlet("/ServletAutenticacao") public class ServletAutenticacao extends HttpServlet { private static final long serialVersionUID = 1L; private DaoLogin daoLogin = new DaoLogin(); public ServletAutenticacao() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if(Boolean.parseBoolean(request.getParameter("deslogar"))){ //adicionar usuario logado na sessao HttpServletRequest req = (HttpServletRequest) request; HttpSession session = req.getSession(); session.invalidate(); //redireciona para login novamente response.sendRedirect("index.jsp"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String login = request.getParameter("login"); String senha = request.getParameter("senha"); String ipDaMaquina = InetAddress.getLocalHost().getHostAddress(); //System.out.println(ipDaMaquina); //nome da maquina. String nomeDaMaquina = InetAddress.getLocalHost().getHostName(); //System.out.println(nomeDaMaquina); String url = request.getParameter("url"); // neste momento pode ser feito uma validação no banco de dados try { if (login != null && !login.isEmpty() && senha != null && !senha.isEmpty()) { if (daoLogin.validarLogin(login, senha)) { // se o login foi bem sucedido Usuario usuario = new Usuario(); usuario.setLogin(login); usuario.setSenha(senha); OcorrenciaAcesso ocorrenciaAcesso = new OcorrenciaAcesso(); ocorrenciaAcesso.setLogin(login); ocorrenciaAcesso.setIpDaMaquina(ipDaMaquina); ocorrenciaAcesso.setNomeDaMaquina(nomeDaMaquina); DaoOcorrenciaAcesso daoOcorrenciaAcesso = new DaoOcorrenciaAcesso(); daoOcorrenciaAcesso.salvarOcorrenciaAcesso(ocorrenciaAcesso); // adiciona usuário logado na sessão HttpServletRequest req = (HttpServletRequest) request; HttpSession session = req.getSession(); session.setAttribute("login", usuario); // redireciona para o sistema e autoriza RequestDispatcher dispatcher = request .getRequestDispatcher("pages/usuario.jsp"); dispatcher.forward(request, response); //gravar log de acesso } else {// acesso negado RequestDispatcher dispatcher = request .getRequestDispatcher("acessonegado.jsp"); dispatcher.forward(request, response); } } else {// se o login falhou // redireciona para login novamente RequestDispatcher dispatcher = request .getRequestDispatcher("/index.jsp"); dispatcher.forward(request, response); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } package servlet; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import javax.imageio.ImageIO; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; import javax.xml.bind.DatatypeConverter; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.tomcat.util.codec.binary.Base64; import beans.Ocorrencia; import beans.Usuario; import dao.DaoUsuario; /** Servlet implementation class ServletUsuario */ @WebServlet("/salvarUsuario") public class ServletUsuario extends HttpServlet { private static final long serialVersionUID = 1L; private DaoUsuario daoUsuario = new DaoUsuario(); Ocorrencia ocorrencia = new Ocorrencia(); public ServletUsuario() { super(); } private String acaoGet; private String sessionUsuario; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String acao = request.getParameter("acao") != null ? request.getParameter("acao"): "listartodos"; String user = request.getParameter("user"); acaoGet = acao; if (acao != null && acao.equalsIgnoreCase("listartodos")) { RequestDispatcher view = request .getRequestDispatcher("/pages/usuario.jsp"); request.setAttribute("usuarios", daoUsuario.listar()); view.forward(request, response); } else if (acao != null && acao.equalsIgnoreCase("delete") && user != null) { daoUsuario.delete(user); request.setAttribute("msg", "Usuário excluído com Sucesso!"); //Tipo de mensagem request.setAttribute("tipo", "success"); // daoUsuario.salvarOcorrencia(ocorrencia); // daoUsuario.deleteOcorrencia(ocorrencia); daoUsuario.acaoPagina(acaoGet); daoUsuario.recuperarID(); daoUsuario.recuperarNome(); daoUsuario.recuperarUsuario(sessionUsuario); daoUsuario.salvarOcorrencia(ocorrencia); RequestDispatcher view = request .getRequestDispatcher("/pages/usuario.jsp"); request.setAttribute("usuarios", daoUsuario.listar()); view.forward(request, response); } else if (acao != null && acao.equalsIgnoreCase("editar") && user != null) { Usuario usuario = daoUsuario.consultar(user); RequestDispatcher view = request .getRequestDispatcher("/pages/usuario.jsp"); request.setAttribute("user", usuario); view.forward(request, response); } else if (acao != null && acao.equalsIgnoreCase("ocorrencia")) { RequestDispatcher view = request .getRequestDispatcher("/pages/ocorrencia.jsp"); request.setAttribute("ocorrencias", daoUsuario.listarOcorrencia(user)); view.forward(request, response); } } catch (Exception e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String acao = ("SalvarUsuario"); String usuarioSessao = request.getParameter("usuarioSessao"); sessionUsuario = usuarioSessao; boolean podeInserir = true; String msg = null; String id = request.getParameter("id"); String login = request.getParameter("login"); String nome = request.getParameter("nome"); String senha = request.getParameter("senha"); Usuario usuario = new Usuario(); usuario.setId(!id.isEmpty() ? Long.parseLong(id) : null); usuario.setLogin(login); usuario.setNome(nome); usuario.setSenha(senha); Ocorrencia ocorrencia = new Ocorrencia(); try { if (id == null || id.isEmpty() && podeInserir) { daoUsuario.salvar(usuario); //Mensagem salvo com sucesso request.setAttribute("msg", "Usuário salvo com Sucesso!"); //Tipo de mensagem request.setAttribute("tipo", "success"); daoUsuario.acaoPagina(acao); daoUsuario.recuperarID(); daoUsuario.recuperarNome(); daoUsuario.recuperarUsuario(usuarioSessao); daoUsuario.salvarOcorrencia(ocorrencia); RequestDispatcher view = request .getRequestDispatcher("/pages/usuario.jsp"); request.setAttribute("usuarios", daoUsuario.listar()); view.forward(request, response); } if (id != null && !id.isEmpty()) { daoUsuario.atualizar(usuario); request.setAttribute("msg", "Usuário editado com Sucesso!"); //Tipo de mensagem request.setAttribute("tipo", "success"); daoUsuario.acaoPagina(acaoGet); daoUsuario.recuperarID(); daoUsuario.recuperarNome(); daoUsuario.recuperarUsuario(usuarioSessao); daoUsuario.salvarOcorrencia(ocorrencia); RequestDispatcher view = request .getRequestDispatcher("/pages/usuario.jsp"); request.setAttribute("usuarios", daoUsuario.listar()); view.forward(request, response); }else{ RequestDispatcher view = request .getRequestDispatcher("/pages/usuario.jsp"); request.setAttribute("usuarios", daoUsuario.listar()); } } catch (Exception e) { e.printStackTrace(); } } }  
    • By Jamersonjds
      Pra aprendizado, estou tentando listar dados do banco de dados e trazer os resultados para meu html.
      Estou conseguindo fazer com este código.
       
      <!DOCTYPE html> <html lang="en"> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="UTF-8"> <title>Chat</title> <link rel="stylesheet" href="../public/style/reset.css"> <link rel="stylesheet" href="../public/style/chatStyle.css"> <!-- É adicionado a biblioteca jquery e o fontAwesome --> <link href="https://fonts.googleapis.com/css?family=Ubuntu&display=swap" rel="stylesheet"> <link href="../public/style/fontawesome/css/all.css" rel="stylesheet"> <script src="../public/js/jquery.min.js"></script> </head> <style> .test2 { cursor: pointer; } </style> <script> $(document).ready(function(){ var itens = "", url = "../includes/configs/chat.php", itens2 = ""; // Capturar dados usando Método AJAX do jquery $.ajax({ url: url, cache: false, dataType: "json", success: function(retorno){ for(var i = 0; i<retorno.length; i++){ itens += "<li>"; itens += "<a class='test2' onclick='function retornou(){$('.Tes22').html('wadwd')}'>"; itens += "<div class='imgUserList'>"; itens += "<div class='widthUserImg'>"; itens += "<div class='imgUserListD'><img src='https://avatars0.githubusercontent.com/u/3966553?s=460&v=4' alt=''></div>"; itens += "</div>"; itens += "<div class='textUserList'>"; itens += "<input type='text' class='pegarID' value='" + retorno[i].id + "'>"; itens += "<span class='title'>" + retorno[i].email + "</span>"; itens += "<h1 class='title'>Está online</h1>"; itens += "</div>"; itens += "</div>"; itens += "</a>"; itens += "</li>"; } $(".pessoas").html(itens); } }) }); </script> <body onload="carregarItens()"> <div class="container"> <div class="listaPessoas"> <div class="headerPeople title"> <h1>Contatos</h1> <h2 class="Tes22"></h2> </div> <ul class="pessoas"> <!-- <li> <a href=""> <div class="imgUserList"> <div class="widthUserImg"> <div class="imgUserListD"><img src="https://avatars0.githubusercontent.com/u/3966553?s=460&v=4" alt=""></div> </div> <div class="textUserList"> <span class="title">10.1.196.90</span> <h1 class="title">Está online</h1> </div> </div> </a> </li> --> </ul> </div> <div class="chat"> <div class="chatHeader"> <div class="title text"> <h1>james</h1> </div> <div class="menuUser title"> <i class="fas fa-ellipsis-h"></i> </div> </div> <div class="chatMessage"> </div> <div class="chattext"> <form action=""> <input type="text" id="modal"> <button><i class="fas fa-paper-plane"></i></button> </form> </div> </div> <div class="infoPessoas"> </div> </div> <script src="../public/js/chat.js"></script> </body> </html> Porém estou querendo pegar apenas o ID e colocar em um <h2> e não estou conseguindo.
      Exemplo: Ao clicar em um dado vindo do banco de dados como é listado acima eu colocar o ID dele no <h2>.
       
      Este é meus dados vindo do PHP já no json.
      echo json_encode($dados, JSON_PRETTY_PRINT);  
    • By everton_araujo
      Olá pessoal, bom dia.
      Gostaria de pedir a ajuda de vcs na criação desse filtro que estou fazendo com a tag option.
      Basicamente gostaria que ao ser mudada a seleção com o value correspondente, a classe pudesse ter o atributo css display:block; e as demais display:none;
       
       
       <select id="mySelect" onchange="myFunction()">
          <option value="todas" >Todas</option>
          <option value="advogadas">Advogadas</option>
          <option value="consultora">Consultora de apoio a adolescentes e universidades internacionais</option>
          <option value="coordenadora">Coordenadoras da Educação</option>
          <option value="coach">Coachs</option>
           <option value="psicologas">Psicólogas</option>
            <option value="gestora">Gestora de comunicação</option>
             <option value="veterinaria">Veterinária</option> <option value="recursos">PHD em Recursos Humanos</option>
        </select>
       
      <div class="todas">conteúdo aqui</div>
      <div class="advogadas">conteúdo aqui</div>
      <div class="consultora">conteúdo aqui</div>
      <div class="coordenadora">conteúdo aqui</div>
      ....Assim por diante...
       
      Desde já, agradeço.
×

Important Information

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