PDA

View Full Version : srpt per data


nuovoUtente86
01-08-2007, 12:17
javascript:alert (document.lastModified)
dovrebbe visualizzare la data dell' ultima modifica..ma mi restituisce quella corrente.

andbin
01-08-2007, 12:26
javascript:alert (document.lastModified)
dovrebbe visualizzare la data dell' ultima modifica..ma mi restituisce quella corrente.Domanda: la pagina è html o php??

nuovoUtente86
01-08-2007, 12:28
su diversi tipo di pagina da lo stesso effetto:php ,asp,jsp.Forse sbaglio qualcosa,metto lo sript sulla barra degli indirizzi...

andbin
01-08-2007, 12:36
su diversi tipo di pagina da lo stesso effetto:php ,asp,jsp.Forse sbaglio qualcosa,metto lo sript sulla barra degli indirizzi...La mia domanda era un po' imprecisa, in realtà avrei dovuto chiedere se la pagina era, parlando in generale, "statica" o "dinamica"!

Il client (browser) quando fa una request http non sa minimamente dove stanno fisicamente i file, quindi non è il client a stabilire la data del document. È il server web che determina la data e la invia al client tra gli header della response.

Una tipica sequenza di header nella response è ad esempio:
HTTP/1.1 200 OK
Date: Wed, 01 Aug 2007 10:32:24 GMT
Server: Apache/1.3.33 (Win32) PHP/4.4.4
X-Powered-By: PHP/4.4.4
Connection: close
Content-Type: text/html

Ora ... se la pagina è statica (es. un html) è presumibile che il server web legga la data del documento dal file system.
Per le pagine dinamiche la data è quella .... del momento in cui viene generata la response.

EDIT: ho fatto una prova veloce. Infatti per una pagina statica, il server web invia un header Last-Modified, per le pagine dinamiche, appunto, non c'è.

nuovoUtente86
01-08-2007, 12:47
per cui per le pagine dinamiche otterrò sempre la data corrente?

andbin
01-08-2007, 12:51
per cui per le pagine dinamiche otterrò sempre la data corrente?Se non invii tu appositamente l'header Last-Modified, sì avrai la data corrente.

In PHP se si vuole mandare la data della pagina php richiesta si può fare:
<?php
$filename = $_SERVER["DOCUMENT_ROOT"] . $_SERVER["PHP_SELF"];

header ("Last-Modified: " . gmdate("D, d M Y H:i:s", filemtime($filename)) . " GMT");
?>In questo modo viene letta la data di modifica dello script php e generato l'header.

nuovoUtente86
01-08-2007, 12:55
macmq nn si puo mai avere la certezza a quanto i dati siano realmente aggiornati.

Però lanciando lo script su una pagina .html ottengo cmq la data corrente.

Faccio cosi.cancello l' indirizzo e scrivo lo script.Se concaten lo script all' indirizzo di una statica nn accade nulla mente se lo faccio ad una dinamica o non accade nulla oppure succede una cosa strana: si visualizza una pagina diversa.

andbin
01-08-2007, 13:10
macmq nn si puo mai avere la certezza a quanto i dati siano realmente aggiornati.Dipende da cosa ti serve.

Come ho detto, per le pagine statiche, il server web invia anche l'header Last-Modified. Per le pagine dinamiche no, c'è solo l'header Date (data della response).
Una pagina dinamica può cambiare ovviamente da una richiesta all'altra, per esempio se deve visualizzare dei dati da una tabella di un db.
Bisogna vedere come intendi gestire questa data di ultima modifica. Se nella tabella del db, sempre per fare un esempio, ci fosse una data di modifica per ogni riga, potresti prendere la data più recente.

Non so ... sto sparando così ma poi dipende da cosa ti interessa ottenere.

Faccio cosi.cancello l' indirizzo e scrivo lo script.Se concaten lo script all' indirizzo di una statica nn accade nulla mente se lo faccio ad una dinamica o non accade nulla oppure succede una cosa strana: si visualizza una pagina diversa.Non ho capito una mazza ... :stordita: