SOU NOVATO NO FORUM E NA VIDA PHP, POR ISSO VENHO PEDIR AJUDA DE VOCES COM ESSE SCRIPTS ABAIXO, COM ELE PEGO A HORA E DATA DO SITE HORACERTA.COM.BR, ANTES DO DIA DO HORARIO DE VERAO MUDAR ESTAVA CORRETO, POREM DEPOIS DA MUDANÇA NAO CONSIGO MAIS ACESSAR A PARTE DE MEU SITE QUE FAZ ESSA VERIFICAÇAO POIS ELE PARA NA MENSAGEM DATA "INVALIDA". SE SOUBEREM O QUE PODE SER E O QUE POSSO MUDAR NO SCRIPT PARA ARRUMAR DESDE JA AGRADECO A AJUDA. MEU EMAIL É XXMURILOXX@GMAIL.COM
// Pega o código fonte do hora certa
@$source = file("http://www.horacerta.com.br/cgi-bin/horacerta.cgi?cidade=Goiania");
// Caso não consiga abrir ele avisa e para o carregamento da página
if(!$source){ exit("Ouve algum problema na sua rede <u>Hora Certa</u> não foi carregado!");}
// Pega a linha que contém a data e a hora certa
$linha = $source[103];
$linha = substr(formatar($linha),3);
$data = kabum($linha,"data"); // Data do Hora Certa
$time = kabum($linha,"tempo"); // Hora do Hora Certa
$sigla = substr(substr($linha,-3),0,2); // AM ou PM
// Formata a data trocando o nome do mês pelo seu número correspondente
$data = explode("/",$data);
if(strlen($data[0]) == 1){ $data[0] = "0".$data[0].""; }
switch($data[1]){
case "jan":
$data[1] = '01';break;
case "fev":
$data[1] = '02';break;
case "mar":
$data[1] = '03';break;
case "abr":
$data[1] = '04';break;
case "mai":
$data[1] = '05';break;
case "jun":
$data[1] = '06';break;
case "jul":
$data[1] = '07';break;
case "ago":
$data[1] = '08';break;
case "set":
$data[1] = '09';break;
case "out":
$data[1] = '10';break;
case "nov":
$data[1] = '11';break;
case "dez":
$data[1] = '12';break;
default:
exit("Data inválida - Erro: Não conseguiu ser formatada"); // Para o carregamento
}
// Reorganiza o novo array
$data = implode("-",$data);
$time2 = $time;
$time = "".$time.",0";
$string = "@echo on
data $data;
time $time";
//echo $data;
/////////////////////////////////acima pega a hora certa
$date = converte_data("$data");
$hora = $time;
$ip_usuario = $REMOTE_ADDR;
$ip = $ip_usuario;
/////////////////////////////////função converte ip total
function converter($ip)
{
$parte = explode(".", $ip);
$numero = $parte[0].$parte[1].$parte[2].$parte[3];
return $numero;
}
/////////////////////////////////////////////fim
//ler dados do formulário
$dados = $_POST;
$erro = 0;
//validação
if (empty($dados['consulta']) || empty($dados['senha']))
{
$erro = 1;
$msg = "É necessário preencher os campos C. N. P. J e senha.";
}
if ($erro == 0)
{
$sql = "SELECT *, LEFT(ip_confere,6) as ip_cadastrado
FROM so_login_cliente
WHERE cnpj = '$dados[consulta]' AND senha = md5('$dados[senha]')";
//die ($sql);
//executar no SGBD
$rs = mysql_query($sql);
//tem no mínimo um (1) registro?
if (mysql_num_rows($rs) > 0)
{
//recebe dados vindo da consulta
$dados_db = mysql_fetch_array($rs, MYSQL_ASSOC);
//hora de criar sessão e redirecionar para página restrita
session_start();
$_SESSION['id'] = $dados_db['id'];
$_SESSION['cnpj'] = $dados_db['cnpj'];
$_SESSION['usuario'] = $dados_db['usuario'];
$_SESSION['empresa'] = $dados_db['empresa'];
$_SESSION['ip_usuario'] = $ip_usuario;
$_SESSION['situacao'] = $dados_db['situacao'];
$_SESSION['nivel'] = $dados_db['nivel'];
///////////////////////grava o acesso ao sistema na tabela acesso.
$sQuery1 = "insert into acesso (cod_user, nome_user, data, hora, ip_usuario)
values ('" . $dados_db['id'] . "',
'" . $dados_db['usuario'] . "',
'" . $date . "',
'" . $hora . "',
'" . converter($ip) . "')";
//die ($sql);
mysql_query($sQuery1);
header("Location: cad_consulta_cliente/consulta_cliente.php");
}
else
{
$erro = 1;
$msg = "C. N. P. J ou senha incorreto. Tente novamente ou entre em contato com nossa central. PABX (021 - 62) 4008-1000 / 4008-1010";
}
}
if ($erro)
{
header("Location: login_consulta.php?mensagem=$msg");
}
?>
EDITADO: Desativado os smileys para melhor visualização e inserido o script em formato PHP!
Editado por gsguma em 02/03/2010 11:48
// Caso não consiga abrir ele avisa e para o carregamento da página
if(!$source){exit("Ouve algum problema na sua rede <u>Hora Certa</u> não foi carregado!");}
// Pega a linha que contém a data e a hora certa
$linha=$source[103];
echo"Linha -> $linha";
?>
OBS: Scripts baseados em sites externos não são um bom negócio, sem contar que seu script está tratando apenas a linha 103, caso o desenvolvedor do site externo alterar qualquer linha antes da 103 seu script se torna unútil, ao invés disso deve tratar todo o código fonte externo ou criar seu próprio (acho mais negócio, mas...kda1 kda1) !
Espero ter ajudado!
Editado por gsguma em 03/03/2010 10:05
// Caso não consiga abrir ele avisa e para o carregamento da página
if(!$source){exit("Ouve algum problema na sua rede <u>Hora Certa</u> não foi carregado!");}
// Pega a linha que contém a data e a hora certa
$linha=$source[103];
echo"Linha -> $linha";
?>
OBS: Scripts baseados em sites externos não são um bom negócio, sem contar que seu script está tratando apenas a linha 103, caso o desenvolvedor do site externo alterar qualquer linha antes da 103 seu script se torna unútil, ao invés disso deve tratar todo o código fonte externo ou criar seu próprio (acho mais negócio, mas...kda1 kda1) !
Espero ter ajudado!
Com certeza ajudou sim
so que o problema é que realmente sou leigo de tudo em php, quem fez este site da empresa nao faz mais parte dela, e colocaram em minha mao para resolver o problema, estou desenvolvendo um projeto para desenvolvimento de um novo site, porem ate la preciso resolver isso, so que de modo a usar os mesmos caminhos que estao no script pra dar certo no restante do site. Se puderem me dar uma força de como fazer agradeceria muito. Obrigado!
Pega a hora do certa na página do Observatório Nacional
(instituição que fornece a hora certa no Brasil).
Obs.: Naturalmente tem um atrasado de mais ou menos
1 a 4 segundos na hora retornada, devido a realização do
download da página e tempo de execução da função.
Cumprimentos, Igor Ferreira Cemim
Pega a hora do certa na página do Observatório Nacional
(instituição que fornece a hora certa no Brasil).
Obs.: Naturalmente tem um atrasado de mais ou menos
1 a 4 segundos na hora retornada, devido a realização do
download da página e tempo de execução da função.
Muito Obrigado pela resposta amigo
mas ainda assim preciso de uma solucao em cima do script que enviei, pois ha outra funcoes buscadas nele que nao posso mexer, estou perdido neste caso, agradeço mais sugestoes
t+
Olha só, não vejo a necessidade de ter que buscar uma data precisa, vendo que so necessita salvar data e hora para logs do sistema, tipo para registrar quando foram feitas as gravações, etc no sistema.
Ninguém usa scripts externos para esse tipo de coisa, então apenas ajustei para pegar a data e hora direto do servidor, ajustando timezone para o fuso horário de "são paulo". Caso não esteja em São Paulo, lei isso e altera onde achar "america/sao paulo" no código abaixo: