Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marceloquinze

[Resolvido] função filemtime() e data da última modificação

Recommended Posts

Olá,

Estou tentando mostrar numa página php a data da última atualização de um arquivo. Já tentei usar a função filemtime(), só que ela não resolve meu problema.

A questão é que tenho um diretório de acesso restrito na minha página e, nela, uma seção na qual os moderadores aprovam ou apagam dados remetidos pelos usuários comuns do site (registrados). A página php que trata os dados e aprova ou não o que os usuários comuns enviam chama-se aprovar.php. Usando o filemtime() seria bem fácil, só que o action do formulário para a página aprovar.php no formato index.php?id=aprovar. Então, se eu usar o filemtime() ele retorna um aviso.

Para complicar, a página na qual eu quero apresentar a data da última modificação está em outro diretório, não restrito, o que talvez não seja um grande problema.

 

dir 1 (aberta)

- quero apresentar os dados aqui

dir 2 (restrita)

- o script está aqui

 

Alguém sabe uma maneira de usar o filemtime() para apresentar a data da última modificação de uma página com o formato index.php?id=pagina????????????

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fernando,

Valeu aí pela vontade de ajudar, mas pesquisando aqui e ali achei uma maneira de fazer o que queria.

Eu criei uma tabela nova no meu BD mysql chamada atualiza. Nela eu criei dois campos, um ID sem auto-incremento, no qual eu inseri o valor 0, e outro campo chamado data, com formato DATE, no qual eu inseri qualquer data.

Quando o usuário registrado (moderador) aprova algum dado, roda um script em PHP que atualiza duas tabelas, uma para onde já iam os dados anteriormente e outra que é essa tabela que eu criei. Eu só aumentei a variável com os comandos abaixo no código:

 

$sql2 = mysql_query("UPDATE atualiza SET data = NOW() WHERE id = 0");

 

Na página onde eu quero que a data de atualização apareça, eu dou um include, o qual chama uma página que tem o segunte código:

 

<?php 
$query = "SELECT * FROM atualiza WHERE id=0";
$sql = mysql_query($query);
while ($resultado = mysql_fetch_array($sql)){
$resultado = date('Y-m-d');   
function formata_data($resultado) {  
	$resultado = explode('-', $resultado);  
	$resultado = $resultado[2].'/'.$resultado[1].'/'.$resultado[0];    
	return $resultado; 
	}   
echo "<strong>Última atualização: </strong>".formata_data($resultado);
}

?>

 

A função desse pedaço de código é só traduzir a data do banco no formato que eu queria.

Mas, valeu pelo interesse!

Resolvido. Se isso ajudar alguém, fico contente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois de um dia usando esse código, percebi que a data retornada estava errada. Sempre mostrava a data atual, não a data que eu tinha no banco. Fiz a minha primeira correção num código PHP sem procurar ajuda e deu certo. Só que não usei função. Ficou assim:

 

<?php 
$query = "SELECT * FROM atualiza WHERE id=0";
$sql = mysql_query($query);
while ($resultado = mysql_fetch_array($sql)){
$data = $resultado['data']; // pego o campo data da linha de resultado retornada e armazeno numa variável
$datafinal = explode ('-', $data); // retiro o "-" da data do MySQL com a função explode, que transforma tudo num array
echo "<strong>Última atualização: </strong>".$datafinal[2]."/".$datafinal[1]."/".$datafinal[0]; // para exibir a data, pego o array e mostro cada campo concatenado com "/"
}
?>

 

Fico contente por estar entendendo melhor PHP. Isso vicia!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.