WHR 0 Denunciar post Postado Fevereiro 3, 2009 Boa tarde galera, tenho um site de balada e no meu cadastro consta em torno de 500 registros. desenvolvi uma newslleter ela esta encaminhando de boa porem na hora de mandar esta acusando esta mensagem "MySQL server has gone away". Como resolvo isto para que ao terminar de mandar ele retorne na tela e não acuse esta mensagem? segue o código if($_GET['btn'] == "gravar"){ $mostrar = mysql_query("SELECT CadVisit_antigo.EMail FROM CadVisit_antigo"); if (!$mostrar){ $resp = "Ocorreu algum erro"; } while($linha = mysql_fetch_array($mostrar, $c)) { $EMail = $linha["EMail"]; $EndServ = "http://www.siteeexemplo.com.br/"; $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "From: <emf@site.com.br>\n"; $Assunto = "titulo!!!"; mail($EMail, $Assunto, "<html> <body bgcolor=\"#F0F0F0\"> <table width=\"550\" border=\"0\" align=center cellpadding=\"0\" cellspacing=\"0\"> <tr> <td><a href=\"http://www.siteexemplo.com.br/\"><img src=\"" . $EndServ . "/templante/midia.jpg\" width=\"550\" height=\"490\" border=\"0\" alt=\"\"></a></td> </tr> </table> </body> </html> ", $headers); } } Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Fevereiro 3, 2009 nos meus 8 meses com PHP nunca vi este erro O_O OBS: eu faria diferente.. Enviaria de 10 em 10 e-mails porque: Alguns sites... e/ou serviços de E-mails definem como SPAM alguns sistemas de Envio de E-mails em massa. Enviando de 10 em 10 seu servidor não trava a caixa de saída de seu site... e não bloqueia seu domínio. =D Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Fevereiro 3, 2009 nos meus 8 meses com PHP nunca vi este erro O_O OBS: eu faria diferente.. Enviaria de 10 em 10 e-mails porque: Alguns sites... e/ou serviços de E-mails definem como SPAM alguns sistemas de Envio de E-mails em massa. Enviando de 10 em 10 seu servidor não trava a caixa de saída de seu site... e não bloqueia seu domínio. =D Valeu Renato, como faço para adaptar no meu código este lance de mandar 10 em 10? Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Fevereiro 3, 2009 if($_GET['btn'] == "gravar"){ $contador_sleep=0; $mostrar = mysql_query("SELECT CadVisit_antigo.EMail FROM CadVisit_antigo"); if (!$mostrar){ $resp = "Ocorreu algum erro"; } while($linha = mysql_fetch_array($mostrar, $c)) { if($contador_sleep==10){ $contador_sleep=0; sleep(10); //Sleep(10) espera 10 segundos antes de continuar a execução do Script. //Usando ele.. quando a variável $contador_sleep atingir a quantia de 10.. ele zera a variável e espera 10 segundos antes de continuar o envio. } $EMail = $linha["EMail"]; $EndServ = "http://www.siteeexemplo.com.br/"; $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "From: <emf@site.com.br>\n"; $Assunto = "titulo!!!"; mail($EMail, $Assunto, "<html> <body bgcolor=\"#F0F0F0\"> <table width=\"550\" border=\"0\" align=center cellpadding=\"0\" cellspacing=\"0\"> <tr> <td><a href=\"http://www.siteexemplo.com.br/\"><img src=\"" . $EndServ . "/templante/midia.jpg\" width=\"550\" height=\"490\" border=\"0\" alt=\"\"></a></td> </tr> </table> </body> </html> ", $headers); $contador_sleep ++; } } OBS: este sleep pode acarretar no erro de tempo de execução excedido ; coloque no inicio do seu arquivo. set_time_limit(0); //tempo de execução máxima inifita; Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Fevereiro 3, 2009 Esta mensagem significa que o MySQL perdeu a conexão com o Apache. Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Fevereiro 3, 2009 if($_GET['btn'] == "gravar"){ $contador_sleep=0; $mostrar = mysql_query("SELECT CadVisit_antigo.EMail FROM CadVisit_antigo"); if (!$mostrar){ $resp = "Ocorreu algum erro"; } while($linha = mysql_fetch_array($mostrar, $c)) { if($contador_sleep==10){ $contador_sleep=0; sleep(10); //Sleep(10) espera 10 segundos antes de continuar a execução do Script. //Usando ele.. quando a variável $contador_sleep atingir a quantia de 10.. ele zera a variável e espera 10 segundos antes de continuar o envio. } $EMail = $linha["EMail"]; $EndServ = "http://www.siteeexemplo.com.br/"; $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "From: <emf@site.com.br>\n"; $Assunto = "titulo!!!"; mail($EMail, $Assunto, "<html> <body bgcolor=\"#F0F0F0\"> <table width=\"550\" border=\"0\" align=center cellpadding=\"0\" cellspacing=\"0\"> <tr> <td><a href=\"http://www.siteexemplo.com.br/\"><img src=\"" . $EndServ . "/templante/midia.jpg\" width=\"550\" height=\"490\" border=\"0\" alt=\"\"></a></td> </tr> </table> </body> </html> ", $headers); $contador_sleep ++; } } OBS: este sleep pode acarretar no erro de tempo de execução excedido ; coloque no inicio do seu arquivo. set_time_limit(0); //tempo de execução máxima inifita; Valeu Renato vou adaptar ao meu código Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Fevereiro 3, 2009 Esta mensagem significa que o MySQL perdeu a conexão com o Apache. Marcio eu adaptando esta solução que o Renato sugerio, este erro tem menor chances de ocorrer? Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Fevereiro 3, 2009 Se o erro ocorre entre apache e Mysql.. creio que você deve modificar suas configurações no PHP.INI o meu PHP.ini para mySql está assim [MSSQL] ; Allow or prevent persistent links. mssql.allow_persistent = On ; Maximum number of persistent links. -1 means no limit. mssql.max_persistent = -1 ; Maximum number of links (persistent+non persistent). -1 means no limit. mssql.max_links = -1 ; Minimum error severity to display. mssql.min_error_severity = 10 ; Minimum message severity to display. mssql.min_message_severity = 10 ; Compatability mode with old versions of PHP 3.0. mssql.compatability_mode = Off ; Connect timeout ;mssql.connect_timeout = 5 ; Query timeout ;mssql.timeout = 60 ; Valid range 0 - 2147483647. Default = 4096. ;mssql.textlimit = 4096 ; Valid range 0 - 2147483647. Default = 4096. ;mssql.textsize = 4096 ; Limits the number of records in each batch. 0 = all records in one batch. ;mssql.batchsize = 0 ; Specify how datetime and datetim4 columns are returned ; On => Returns data converted to SQL server settings ; Off => Returns values as YYYY-MM-DD hh:mm:ss mssql.datetimeconvert = Off ; Use NT authentication when connecting to the server mssql.secure_connection = Off ; Specify max number of processes. -1 = library default ; msdlib defaults to 25 ; FreeTDS defaults to 4096 ;mssql.max_procs = -1 O erro pode ocorrer devido ao estouro do tempo de execução.. Alguns servidores fazem isto para que o usuário não fique com uma conexão aberta diretamente com o banco de dados.(motivos de segurança) Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Fevereiro 3, 2009 hummmm vou verificar isso Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Fevereiro 3, 2009 Procure a razão para o problema, leia isto: http://dev.mysql.com/doc/refman/4.1/pt/gone-away.html Não é um problema comum, e você deve encontrar a razão para isto estar acontecendo e resolver o problema, ao invés de aplicar soluções ineficientes. Nunca mexa no php.ini, nem no my.ini, nem no httpd.conf, nem em arquivo de configuração nenhum para fazer um sistema funcionar: isto é uma péssima prática, e pode causar incompatibilidade em sistemas que você desenvolva para a internet. Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Fevereiro 3, 2009 Procure a razão para o problema, leia isto: http://dev.mysql.com/doc/refman/4.1/pt/gone-away.html Não é um problema comum, e você deve encontrar a razão para isto estar acontecendo e resolver o problema, ao invés de aplicar soluções ineficientes. Nunca mexa no php.ini, nem no my.ini, nem no httpd.conf, nem em arquivo de configuração nenhum para fazer um sistema funcionar: isto é uma péssima prática, e pode causar incompatibilidade em sistemas que você desenvolva para a internet. Obrigado Marcio, vou ler a referencia e procurar a solução para isto Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Fevereiro 3, 2009 Verifique também o tempo que está demarando para a execuçaõ das querys, se a página estiver demorando para carregar, tem algo errado nas querys ou índices das tabelas. Pode ser uma razão também. Poste a conclusão. Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Fevereiro 3, 2009 Verifique também o tempo que está demarando para a execuçaõ das querys, se a página estiver demorando para carregar, tem algo errado nas querys ou índices das tabelas. Pode ser uma razão também. Poste a conclusão. Ok Marcio assim que encontrar a solução eu coloco aqui Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Fevereiro 4, 2009 Alterei o formato igual ao que o Renato sugeriu mas continua o mesmo erro Marcio procurei aqui no codigo e não encontrei o erro entrei em contato onde hospedo o site agora estou aguardando uma resposta deles Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Fevereiro 4, 2009 Galera onde hospedo o site me mandou resposta que esta mensagem é o tempo limite que o maximo permitido é de 60 segundos onde por motivos de segurança não pode ser alterados. Não sei se tem haver isto poi ao disparar não demora nem 10 e já acusa a mensagem. Será mais eficaz montar um "sistema" que encaminhei direto do meu pc sem a interferencia de onde hospedo? Alguém tem algum sugestão? Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Fevereiro 4, 2009 Você pode passar a URL pra eu verificar algumas coisas ? Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Fevereiro 4, 2009 Você pode passar a URL pra eu verificar algumas coisas ? Esta na area administrativa do site.. quer que eu encaminhe o arquivo para seu e-mail? Compartilhar este post Link para o post Compartilhar em outros sites