Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera, estou utilizando o seguinte comando para acessar uma url externa:
$handle = fopen("http://casacomarduino.dlinkddns.com:1600/?acao=102", "r");
O código funciona no servidor local, mas nao funciona quando hospedo no servidor, retorna o seguinte erro:
Warning: fopen(http://casacomarduino.dlinkddns.com:1600/?acao=101): failed to open stream: Connection timed out in /home/u588660515/public_html/ch-administrador/cron/fopen.php on line 5
O O problema é que o codigo estava funcionando antes, e tambem consegui fazer funcionar com a funcao header, mas pelo que entendi ela nao funciona server-side, estou criando uma tarefa cron.
Se alguem puder me ajudar a encontrar uma função que funcione server side eu ficarei imensamente grato.
(obs. preciso apenas acessar o link, nao preciso receber nada desse link, só acessar msm pra ele fazer uma função)
Nao sei se vc chegou a abrir o link, mas o que eu preciso é apenas de passar um parametro via ajax atraves da url, vc vc teria algum exemplo de cURL, eu tentei usar aqui mais cedo e aconteceu o mesmo problema, no servidor local funciona corretamente mas no servidor principal msm nao funciona
<?php
function testeOnclick() {
$hostname = ""; // Host // endereço
$username = ''; // Usuario
$password = ''; // Senah
$database = ''; //Nome do bd
$tipo ;
$horario ;
$tempo ;
try {
$pdo = new PDO("mysql:host=$hostname;dbname=$database", $username, $password,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
echo 'Conexao efetuada com sucesso!';
} echo $e->getMessage();
echo 'erro na conexao!';
}
// executa a instrução SQL
$consulta = $pdo->query("SELECT tipo, horario, tempo, cont FROM horta");
//executa um comando while para salvar as variaveis
while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) {
$tipo = $linha['tipo'];
$horarioIniciar = $linha['horario'];
$tempo = $linha['tempo'];
$cont = $linha['cont'];
}
date_default_timezone_set('America/Sao_Paulo'); // Pega a data atual do brasil
$data_sistema = date('H:i'); // Formata a data para minutos e segundos
// Defino a hora com a qual vou trabalhar
$hora = $horarioIniciar;
// Somo 5 minutos (resultado em int)
$horaNova = strtotime("$hora + $tempo minutes");
// Formato o resultado
$horarioTerminar = date("H:i",$horaNova); // O 'h' maisculo seta a data no formato 12hs e o h minisculo bo formato 24hs
// Mostro na tela
echo "Horario inicial = '$horarioIniciar' - Horario terminar = '$horarioTerminar' - Durante = '$tempo' - Hora Atual = '$data_sistema'";
if($data_sistema > $horarioIniciar && $tipo == 'agendamento' && $cont == 0 && $data_sistema < $horarioTerminar){
$sql = "INSERT INTO `horta_log`(data, log) VALUES ( NOW() + INTERVAL 45 MINUTE, 'Irrigação acionada por agendamento!')";
$exec = $pdo->exec($sql);
$sql = "UPDATE `horta` SET cont = '1' WHERE 1";
$exec = $pdo->exec($sql);
echo "deu certo ";
// O código funciona até aqui, consegui inserir os dados no banco de dados, mas na hora de executar o comando abaixo
// ele retorna aquela msg de erro.
$handle = fopen("http://casacomarduino.dlinkddns.com:1600/?acao=101", "r");
}else{
echo"Erro ao acionar a irrigação!";
}
if($horarioTerminar < $data_sistema && $tipo == 'agendamento' && $cont == 1){
$sql = "INSERT INTO `horta_log`(data, log) VALUES ( NOW() + INTERVAL 45 MINUTE, 'Irrigação desligada por agendamento!')";
$exec = $pdo->exec($sql);
$sql = "UPDATE `horta` SET cont = '0' WHERE 1";
$exec = $pdo->exec($sql);
echo "deu certo ";
$handle = fopen("http://casacomarduino.dlinkddns.com:1600/?acao=102", "r");
}else{
echo"Erro ao desligar a irrigação!";
}
}
testeOnclick();
?>
Este é o código que é acionado por uma tarefa cron, estava funcionando e do nada parou de funcionar. Mandeu uma msg para o suporte e eles disseram que é erro de programaçao provavelmente em uma variavel.
Provavelmente allow url fopen foi desativado, então use cURL...