Me chamo Fernando e tenho um conhecimento que classifico como médio em PHP, mas agora, desenvolvendo um sistema de validacão que usarei em todos os sistemas que desenvolvo para terceiros aqui na cidade a fim de me proteger de roubo de codigo e etc..., me deparei com um problema:
O Problema:
Preciso saber a data correta do sistema operacional do servidor ou da máquina em que esta sendo executado o sistema, claro, para impedir que alterações de data no relógio do Windows, por exemplo, burlem o sistema.
O que já sei fazer?
Sei que o arquivo do Windows, bootstat.dat, como muitos devem saber, grava na sua informação de ultima modificação, a data do sistema quando o usuário efetua login no Windows, assim sendo, pretendo usar a função filemtime() para pegar esta data, isso já é bem melhor que usar date(). :)
No que preciso de ajuda?
1) Como acessar este arquivo já que ele está fora do meu httpdocs?
2) Que arquivo usar nesta mesma operação para plataforma Linux?
CÓDIGO PRA FACILITAR O ENTENDIMENTO DA FUNCAO:
// Verifica se a Validaao esta ligada e se já foi executada nesta sessao
If (VAL && !$Executado)
{
$_SESSION['SQL'] = 'SELECT Token FROM '.SIS_TabSIS.' WHERE SIS = "'.SIS_Titulo.'"';
$Token = MySQL_Resultado('Token') OR Die (MySQL_Erro());
$Token = SIS_Decode($Token);
$URL = VAL_Link.'?sID='.SIS_ID;
$Curl = curl_init($URL);
curl_setopt($Curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($Curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($Curl, CURLOPT_USERPWD, $Token);
$Retorno = curl_exec($Curl);
curl_close($Curl);
$Curl_RT = @explode(':', SIS_Decode($Retorno));
If ($Curl_RT[0] == 0)
{
$RT['Erro'] = 1; // Erro no curl
$RT['Data'] = 'Curl';
Return $RT;
}
/* LICENCA */
$_SESSION['SQL'] = 'SELECT Licenca, Licenca_Tipo, Licenca_Data FROM '.SIS_TabSIS.' WHERE SIS = "'.SIS_Titulo.'"';
If (MySQL_Linhas())
{
$RG = MySQL_Array();
// VALIDA OS DADOS DA LICENCA NO DB, SE DIVERGE, ATUALIZA PARA OS DADOS DO SERVIDOR
If ( (SIS_Decode($RG['Licenca']) != $Curl_RT[1]) || (SIS_Decode($RG['Licenca_Tipo']) != $Curl_RT[2]) || (SIS_Decode($RG['Licenca_Data']) != $Curl_RT[3]))
{
$_SESSION['SQL'] = 'UPDATE '.SIS_TabSIS.' SET Licenca = "'.SIS_Encode($Curl_RT[1]).'", Licenca_Tipo = "'.SIS_Encode($Curl_RT[2]).'", Licenca_Data = "'.SIS_Encode($Curl_RT[3]).'" WHERE SIS = "'.SIS_Titulo.'"';
MySQL_Consulta() OR Die (MySQL_Erro());
$_SESSION['SQL'] = 'SELECT Licenca, Licenca_Tipo, Licenca_Data FROM '.SIS_TabSIS.' WHERE SIS = "'.SIS_Titulo.'"';
$RG = MySQL_Array();
}
// GRAVA AS INFORMACOES DA VALIDACAO
$varData = date('d/m/Y');
$varHora = date('H:i');
// Banco de Dados
$_SESSION['SQL'] = 'UPDATE '.SIS_TabSIS.' SET Validacao_Data = "'.SIS_Encode($varData).'",
Validacao_Hora = "'.SIS_Encode($varHora).'",
Validacao_Retorno = "'.$Retorno.'",
Validacao_Status = "'.SIS_Encode($Curl_RT[0]).'"
WHERE SIS = "'.SIS_Titulo.'"';
MySQL_Consulta() OR Die (MySQL_Erro());
// Sessao
$_SESSION['SIS']['Validacao']['Executado'] = 1;
$_SESSION['SIS']['Validacao']['Data'] = SIS_Encode($varData);
$_SESSION['SIS']['Validacao']['Hora'] = SIS_Encode($varHora);
$_SESSION['SIS']['Validacao']['Status'] = SIS_Encode($Curl_RT[0]);
// VALIDACAO
$Data_Curl = $Curl_RT[3];
$Data_Curl_TS = Geral_DataTS($Curl_RT[3]);
$Data_Hoje_TS = Geral_DataTS(date('d/m/Y'));
If ($Data_Hoje_TS > $Data_Curl_TS)
{
$RT['Erro'] = 3; // Licenca Expirada
$RT['Data'] = $Data_Curl;
Return $RT;
} Else {
$RT['Erro'] = 0;
$RT['Data'] = 'OK';
Return $RT;
}
} Else {
$_SESSION['SIS']['Validacao']['Executado'] = 0;
$RT['Erro'] = 2; // não existe dados na tabela de validacao
Return $RT;
}
} Else {
$RT['Erro'] = 0;
$RT['Data'] = 'Validado';
Return $RT;
}
Utilizamos cookies e tecnologias semelhantes de acordo com a nossa Política de Privacidade, e ao continuar navegando, você concorda com estas condições.
Pergunta
Fernando Lima (IPIS)
Olá pessoal, meu primeiro post aqui!
Me chamo Fernando e tenho um conhecimento que classifico como médio em PHP, mas agora, desenvolvendo um sistema de validacão que usarei em todos os sistemas que desenvolvo para terceiros aqui na cidade a fim de me proteger de roubo de codigo e etc..., me deparei com um problema:
O Problema:
Preciso saber a data correta do sistema operacional do servidor ou da máquina em que esta sendo executado o sistema, claro, para impedir que alterações de data no relógio do Windows, por exemplo, burlem o sistema.
O que já sei fazer?
Sei que o arquivo do Windows, bootstat.dat, como muitos devem saber, grava na sua informação de ultima modificação, a data do sistema quando o usuário efetua login no Windows, assim sendo, pretendo usar a função filemtime() para pegar esta data, isso já é bem melhor que usar date(). :)
No que preciso de ajuda?
1) Como acessar este arquivo já que ele está fora do meu httpdocs?
2) Que arquivo usar nesta mesma operação para plataforma Linux?
CÓDIGO PRA FACILITAR O ENTENDIMENTO DA FUNCAO:
Desde já agradeço qualquer luz.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.