gostaria da ajuda de voces com um problema, estou fazendo um sistema em php pra automação residencial e no meu banco de dados existe uma tabela que mostra se um alarme foi ativado ou não e se o script percebe q um determinado campo da tabela mudou de "0" para "1" significa que um sensor foi ativado então ele envia um email e uma mensagem de sms para o celular do dono da casa, eu poderia simplesmente ficar fazendo um refresh da pagina que resolveria o problema mas acontece que não quero enviar uma mensagem e um sms a cada refresh da pagina senao iria inundar a caixa postal de mensagens, então fiz um contador de tempo para só enviar a cada tempo estipulado, só que dando refresh ele zera o contador dai não tem como eu contar o tempo pra disparar uma nova mensagem caso o sensor ainda esteja ativo, então preciso de um loop infinito na pagina pra isso.
do jeito que ta o codigo abaixo, funciona direitinho mas só por 30 segundos dai da "Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp-portable\htdocs\automacao\conecta.php on line 5", da pra anular o limite de tempo de execução? pode travar?... aguem me ajuda numa solução?
<?php
$inicio = microtime(true);
$fim = 0;
while(TRUE){
require 'conecta.php';
// $resultado = "select sum(estado) from sensores";
$result = mysql_query("SELECT SUM( estado ) AS soma, idestado FROM sensores, reles, equipamentos WHERE reles.ideq = equipamentos.ideq
Question
renato BP
gostaria da ajuda de voces com um problema, estou fazendo um sistema em php pra automação residencial e no meu banco de dados existe uma tabela que mostra se um alarme foi ativado ou não e se o script percebe q um determinado campo da tabela mudou de "0" para "1" significa que um sensor foi ativado então ele envia um email e uma mensagem de sms para o celular do dono da casa, eu poderia simplesmente ficar fazendo um refresh da pagina que resolveria o problema mas acontece que não quero enviar uma mensagem e um sms a cada refresh da pagina senao iria inundar a caixa postal de mensagens, então fiz um contador de tempo para só enviar a cada tempo estipulado, só que dando refresh ele zera o contador dai não tem como eu contar o tempo pra disparar uma nova mensagem caso o sensor ainda esteja ativo, então preciso de um loop infinito na pagina pra isso.
do jeito que ta o codigo abaixo, funciona direitinho mas só por 30 segundos dai da "Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp-portable\htdocs\automacao\conecta.php on line 5", da pra anular o limite de tempo de execução? pode travar?... aguem me ajuda numa solução?
<?php
$inicio = microtime(true);
$fim = 0;
while(TRUE){
require 'conecta.php';
// $resultado = "select sum(estado) from sensores";
$result = mysql_query("SELECT SUM( estado ) AS soma, idestado FROM sensores, reles, equipamentos WHERE reles.ideq = equipamentos.ideq
AND nomeEq = 'Alarme'")or die(mysql_error());
$cont = mysql_fetch_array($result);
$total = $cont["soma"];
$alarme = $cont['idestado'];
if ($total >0 and $alarme == 1 and $tempo>30) {
$inicio = microtime(true);
echo "<script> window.open('envia_alerta.php'); </script>";
}
$fim = microtime(true);
$tempo = $fim - $inicio;
}
?>
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.