Autor Zpráva
Adrifinel
Profil
V diskuzi jsem našla tento kód:

<? $slozka = dir(".");
while($soubor=$slozka->read()) {
    $vlozene[] = $soubor;
}
$slozka->close();

$cas = 0;
foreach ($vlozene as $file) {
    $cas = max($cas, filemtime($file));
}

echo "Poslední aktualizace: ".date("d.m.Y H:i:s", filemtime('.')); ?>


a) Kód je v patičce, která je includovaná. A čas to všude ukazuje: 30.10.2011 15:05:10.
Co je to vlastně za čas? Protože se to ukazuje furt stejně i na těch stránkách, které byly podle ftp nahrané(změněné) cca o 14 dní dříve....

b) Chtěla bych, aby se kód ukazoval na každé stránce, výjma indexu atd... jak vlastně přidám vyjímku, kde se to má zobrazovat?
Joker
Profil
Adrifinel:
Nejsem si tím úplně jistý, ale tak jak to je napsané by to mělo vrátit čas modifikace aktuálního adresáře, což by měl být čas vytvoření nejnovějšího souboru v něm.
Adrifinel
Profil
Joker:
Takže jestli chápu adresář a v něm jeden soubor? Já to pochopila jako, že to má procházet všechny soubory v tom adresáři...
Adrifinel
Profil
Tak jsem zkusila dát kód zvlášt do stránky a i u ní mi to hlásí stejnej datum změny. A není to datum neaktuálnějšího souboru v a root.
Davex
Profil
Adrifinel:
Ve skutečnosti jsi nevhodně zkombinovala dva kódy (z Datum poslední aktualizace includovaných souborů) a všechno před echo je tam teď zbytečně, protože proměnná $cas se nikde nevypisuje. Vypisuje se čas poslední změny adresáře, ve kterém se nalézá PHP skript s tímto kódem.

Zkus jen tento kód, který vypíše čas poslední změny adresáře:

echo "Poslední aktualizace: ".date("d.m.Y H:i:s", filemtime(dirname($_SERVER['SCRIPT_FILENAME'])));
Adrifinel
Profil
Davex:
Zkusila jsem to tam dát a ukazuje mi to dát a ukazuje to mi to víceméně poslední změnu souboru agumon.php u všech stránek.

Je vůbec nějaký způsob, jak pomocí využití include udělat, aby se ten čas změny ukázal u všech "statických částí webu" nebo se to musí "otrocky vkládat do každé stránky zvlášť?"
Davex
Profil
Jaký čas poslední změny chceš vlastně zobrazovat? Na každé stránce její poslední změnu nebo na všech stránkách stejný čas poslední aktualizace webu jako celku?

Je vůbec nějaký způsob, jak pomocí využití include udělat, aby se ten čas změny ukázal u všech "statických částí webu" nebo se to musí "otrocky vkládat do každé stránky zvlášť?"
Nemusí se vkládat do každé stránky zvlášť. Obvykle se to řeší tak, že se do jednotné šablony vkládá obsah jednotlivých stránek podle parametrů v adrese. Možná pomůže Jak využít include - Vkládání obsahu.
Adrifinel
Profil
Davex:
Na každé stránce její poslední změnu.

No na to právě, chci využit patičku, kterou mám již na ty stránky naincludovanou, takže bych nemusela dávat kód zvlášt, ale jak říkám buď to ukazuje poslední změnu toho souboru nebo té patičky, i když to kolikrát ukáže čas, který neodpovídá žádné stránce na webu.
Davex
Profil
Pokud stránky s obsahem přímo includují patičku a obsah se nenačítá z databáze, tak by mělo stačit dát do patičky kód bez dirname():

echo "Poslední aktualizace: ".date("d.m.Y H:i:s", filemtime($_SERVER['SCRIPT_FILENAME']));
Adrifinel
Profil
Davex:
Už jsme to s kámoškou vyřešily:

<? $filename = $_SERVER["SCRIPT_FILENAME"];
$zakazane = array("/index.php"); // další zakázané soubory
$povoleno = "ano";

foreach($zakazane as $co){
 if(strpos($filename, $co)) {
  $povoleno = "ne";
 }
}
if (file_exists($filename) AND $povoleno == "ano") {
    echo "Poslední změna  provedena" . date ("H:i:s d.m.Y", filemtime($filename));
}
/* else {echo $filename." neexistuje.";} */ ?>


Ten tvůj kód taky funguje.... nicméně my jsme si vykoumaly kód, který to taky ukazuje a zároveň, jsou tam podmínky, jako třeba, že nechci ukazovat datum změny indexu, kde je víceméně jenom výpis, nebo správy účtu apod.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0