Ir para conteúdo
manoaj

ERRO DURANTE O USO DO LONG POLLING

Recommended Posts

Pessoal estou usando o long polling pra me retornar notificacoes em tempo real, esta tudo funcionando normalmente, estou inserindo os dados no db e o codigo me retorna as novas notificacoes, mas se eu der um refresh na pagina ela fica em um loop infinito tentando atualizar e gerando esse erro no meu php MySQL server has gone away.

Como resolvo e o que siguinifica esse erro dentro desse contexto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema de se trabalhar com long polling é justamente a quantidade de conexões abertas.

 

Após conectar-se ao servidor MySQL, por questões operacionais e de desempenho, o servidor encerra a conexão ociosa automaticamente. Para resolver este erro, programe seu script para conectar-se ao banco, executar a query e encerrar a conexão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por fellipe.arakaki
      Boa tarde, sou novo no php e estou tentando listar os produtos do banco na pagina web que fiz, porém eu ja tentei listar os dados colocando a table dentro da tag <?php> e fora da tag php, e nenhum dos dois jeitos exibe os dados, eu tambem testei a query e quando dei echo no array ele esta imprimindo todos os valores os dados das tabelas bo banco porem nao mostra na tabela, alguem poderia me ajudar com esse problema? Nos dois casos as colunas são exibidas mas os dados não.
      Segue anexo o código da pagina e da query que eu criei:
       
       




    • Por Adriano Weverton
      Necessito de ajuda em relação a como gerar um pdf pegando imagens do banco de dados utilizando a biblioteca fpdf e se for possível colocar um limite de resolução padrão.
    • Por andersonx
      Galera, estou desenvolvendo um sistema, e estou mexendo agora, na parte de recuperação de senha, segui um tutorial que achei bem interessante, no YT, fiz tudo que o cara fez, mas esta aparecendo um erro , na hora de enviar o email, usando um sistema de hospedagem externo, 
       
      Código para recuperação: 
       
      <head>
        <?php 
                date_default_timezone_get("America/Ponta_Pora");
              include "../includes/inc_head.php"; 
              include "../../helpers/conexao.php";  
            
              if(isset($_POST['acao']) && $_POST['']=='recuperar'):
                  $email = strip_tags(filter_input(INPUT_POST,'emailrecupera',FILTER_SANITIZE_STRING));
                  $verificar = mysqli_query($conexao,"SELECT email FROM educadores  WHERE email='$email'");
                  if(mysqli_num_rows($verificar==1)){
                      
                  $codigo = base64_encode($email);
                  $data_expirar= date('Y-m-d H:i:s', strtotime('+ 1 day'));
                  
                  $mensagem='<p>Recebemos uma tentativa de redefiniçao de senha  para esse email, causo não foi voce que enviou,'
                          . ' desconsidere esse email, caso  contrário clique no link abaixo <br /> '
                          . '<a href="nomedosite/recuperar_senha.php?codigo='. $codigo.'  ">Recuperar Senha </a>    </p>';
                  $email_remetente='andersonshipuden@gmail.com';
                  
                  
                  
                          $headers = "MINE-Version: 1.1\n";
                          $headers .= "Content-type: text/html; charset-iso-8859-1\n";
                          $headers .= "From: $email_remetente\n";
                          $headers .= "Return-Path: $email_remetente\n";
                          $headers .= "Reply-To: $email\n";
                          $inserir= mysqli_query($conexao,"INSERT INTO codigos  SET codigo='$codigo', data='$data_expirar'");
                         if($inserir){
                           if (mail("$email", "Assunto", "$mensagem", $headers, "-f$email_remetente")){
                            echo 'Enviamos um email com um link para a recuperaçao de senha para o endereço de e-mail, que enviou';
                            
                        
                             
                         }                    
                       }
                  
                  }
                  
                
                 
               
                  
                  endif;
              
         /*$headers = "MINE-Version: 1.1\n";
         $headers .= "Content-type: text/plain; charset-iso-8859-1\n";
         $headers .= "From: $email_remetente\n";
         $headers .= "Return-Path: $email_remetente\n";
         $headers .= "Reply-To: $email_usuario\n";
         mail("$email_usuario", "Assunto", "$mensagem", $headers, "-f$email_remetente");
         
              */
              
              ?>
         
             
             
              
              
              
             
      </head>
      <body  >
        <div class="container-fluid">
                  <?php include "../includes/inc_nav.php"; ?>
              </div>
          
         
          
          <div class="form-horizontal" id="img" >
            <div class="row">
                  
                   
                     
                       
                       <center>    <h4 id="tit"><strong>Recuperar Senha</strong></h4> </center>
                     
                       <form id="f"  class="form-horizontal" method="POST" enctype="multipart/form-data">
                    
                           
                          <img src="../img/logo.png" id="fff">
                         <br>
                         <br>
                         <br>
                          <br>
                           <br>
                         <br>
                         <center>    <h6 id="recs"><strong>Para recuperar sua  Senha inseira o seu Email Cadastrado!</strong></h6> </center>
                         <br>
               
                         
                        <div class="control-group">
                          <label class="control-label">Email:</label>
                          <div class="controls glyphicon glyphicon-envelope" >
                              <input type="text" name="emailrecupera" value="" class="form-control"  placeholder="Email" required>
                              <input type="hidden" name="acao" value="recuperar" class="form-control" required>
                               
                          </div>
                        </div>
                     
                     
                        <div class="control-group">
                          <div class="controls">
                              <button type="submit"  value="recuperar Senha" id="submit" class="btn-success" >Enviar</button>
                          </div>
                            <br>
                            <div class="controls" >
                                      <button type="reset"  id="reset" class="btn-warning">Limpar Campos</button>
                          </div>
                          
                        </div>
                           <br>
                         <br>
                         <br>
                          <p class="aligncenter margintop500" id="registrar" >
                            Nao Possui uma  conta? <a href="registrar.php"  aria-hidden="true" >Registre-se</a>
                          </p>
                          
                      </form>
                    </div>  
          </div>
       
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      Essa é a segunda tela, quando ele clicar no codigo enviado por email par aele
      <head>
       

        <?php 
               
              include "../includes/inc_head.php"; 
              include "../../helpers/conexao.php";        
              
               if(isset($_GET['codigo'])){
                   $codigo= $_GET['codigo'];
                   $email_codigo= base64_decode($codigo);
                   $selecionar = mysqli_query($conexao,"SELECT * FROM codigos WHERE codigo = '$codigo' AND  data > NOW()");
                   if(mysqli_num_rows($selecionar)>=1){
                       if(isset($_POST['acao']) && $_POST['acao']=='mudar'){
                           $nova_senha= $_POST['novasenha'];
                           $atualizar= mysqli_query($conexao,"UPDATE educadores SET senha ='$nova_senha' WHERE email='$email_codigo'");
                           if($atualizar){
                               $mudar= mysqli_query($conexao,"DELET FROM codigos WHERE codigo='$codigo'");
                                    
                               echo 'Sua senha foi modificada com sucesso';
                           }
                       }
             ?>
          
          <div class="row">
                  
                   
                     
                       
                       <center>    <h4 id="tit"><strong>Por Favor, insira a sua  nova senha:</strong></h4> </center>
                       <form id="f"  class="form-horizontal" method="POST" enctype="multipart/form-data">
                    
                           
                          <img src="../img/logo.png" id="fff">
                         <br>
                         <br>
                         <br>
                          <br>
                           <br>
                         <br>
                         <center>    <h6 id="recs"><strong>Para atualizar sua  Senha insira sua nova senha no campo abaixo!</strong></h6> </center>
                         <br>
               
                        <div class="control-group">
                          <label class="control-label">Nova Senha:</label>
                          <div class="controls glyphicon glyphicon-envelope" >
                              <input type="password" name="novasenha" value="" class="form-control"  placeholder="Nova Senha" required>
                              <input type="hidden" name="acao" value="mudar" class="form-control" required>
                               
                          </div>
                        </div>
                     
                     
                        <div class="control-group">
                          <div class="controls">
                              <button type="submit"  value="Mudar Senha" id="submit" class="btn-success" >Salvar Senha</button>
                          </div>
                            <br>
                            <div class="controls" >
                                      <button type="reset"  id="reset" class="btn-warning">Limpar Campos</button>
                          </div>
                          
                        </div>
                           <br>
                         <br>
                         <br>
                          
                      </form>
                    </div>  
          
          
          
          <?php 
                       
                   }else {
                       echo 'Desculpe mais esse link já expirou';
                       
                   }
                   
               }
                  
                ?>  
        
              
         Esta dando um erro, na seguinte linha :    if(mysqli_num_rows($verificar==1))
       
      esse erro: 
       
      Notice: Object of class mysqli_result could not be converted to int in /storage/ssd4/199/6565199/public_html/EducAtiv/view/home/recuperarSenha.php on line 14

      Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /storage/ssd4/199/6565199/public_html/EducAtiv/view/home/recuperarSenha.php on line 14
       
             
             
              
          
×

Informação importante

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