Jump to content
Robson Barros da Rocha

backend das notificações push

Recommended Posts

Olá! Estou com sérias dúvidas sobre as notificações push. Já instalado, ela segue este tutorial explicativo: https://www.phpzag.com/push-notification-system-with-php-mysql/ Esse método para mim é mais simples, mas, e já fiz as adaptações para comportar meu banco de dados, mas, o problema é que ele não me envia as notificações push quando estou fora do navegador ou via celuar por exemplo. Eu comentei no artigo mencionado, mas, o autor não me respondeu já tem uma semana.

Alguém tem algum artigo que indique como posso realizar essas notificações push até mesmo quando o navegador estiver fechado e via aparelho celular?

Share this post


Link to post
Share on other sites

Cara, recomento fortemente você usar o firebase para notificações push. O artigo é mal escrito e muito mal explicado (desculpe a sinceridade). Notificações push requerem uma conexão https, e service workers (client side) para poderem funcionar. O código do artigo que você mandou parece mais uma gambiarra. 

 

Uma implementação push de verdade é feita utilizando service workers, no qual é necessário um servidor que gerencie as notificações. Geralmente não compensa escrever um servidor para enviar notificações, pois você teria que gerenciar chaves VAPID, o que dá um certo trabalho.

 

Recomendo fortemente que você utilize o firebase pra enviar notificações já que ele possui uma cota grátis e ilimitada para notificações push.

https://firebase.google.com/docs/cloud-messaging?hl=pt-br

 

Dê uma olhada no link acima. O segredo das notificações push na web está no lado do cliente. Você tem que fazer funcionar os service workers corretamente.

Share this post


Link to post
Share on other sites

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 tii3030
      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.
    • By tii3030
      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';
                  }
              }
      ?>
    • By michelmir
      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.
    • By noxer
      Boa tarde, Preciso atribuir o valor de uma textarea para uma var e a exibir em um p. Fiz bem simples usando js/jquery mas agora preciso fazer em php.
       
      Ja tentei $variavel = $_POST['nomedocampo']; mas não obtive resultado
       
       
      Segue o trecho em js
      <textarea class="wapf-input" ></textarea> <button class="sendPDF">PDF</button> <p class="geratedPDF"></p>  
      $('.sendPDF').on('click', toPDF) function toPDF() { var textareaValue = $('.wapf-input').val() $('.geratedPDF').text(textareaValue) }
    • By Deivid Santos
      Salve galera, estou quebrando a cabeça aqui, já pesquisei mas não achei nada sobre.
      Eu tenho alguns dados que busco no banco de dados e mostro em um datagrid, além do CRUD que implantei eu preciso ter a opção de mudar as posições no banco. Preciso fazer isso pois elas são informações que vão para um telão. e ele segue uma ordem na mostragem dos dados.
      Teria alguma forma de arrastar a linha do grid e assim ele mudar o ID do mesmo conforme a posição que ficaria e assim os outros também seriam atualizados?
      Como exemplo segue uma imagem de como ele funciona. por exemplo eu movimento o ID 1 na posição abaixo do ID 3, assim o ID 2 e 3 se tornariam 1 e 2 com essa movimentação e o que era 1 se torna 3.

       
      Agradeço qualquer ajuda que puder.
       
       
×

Important Information

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