Problém
11 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Udělal jsem si malou fotogalrii, když vložím obrázek uloží se příkladem do adresáře images/1.jpg když obrázek smažu a vložím znovu jiný, který mi script uloží pod stejným jménem a otevřu stránku kde se fotky zobrazují, tak se tam objeví ten starej smazanej a ne ten novej vloženej. Musím kliknout na aktualizovat a pak se změní. Neví někdo jak tomu zamezit? Zkoušel jsem meta tagy ale bez úspěchu.
-
Zkus to poslat v zahlavi HTTP. header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header("Expires: Wed, 19 Jul 2000 02:13:22 GMT"); header("Last-Modified: " . date("D, d M Y H:i:s"));
-
CTR+F5 ?
-
PEtr: On chce prave vyresit to, aby ctrl+f5 nemusel mackat. Musis si to poradne precist.
-
Sojka: Aha, vzpomínám, tento problém jsem taky kdysi řešil.
-
<HTML>cache nevypinej, to je reseni naprd a akorat zpusobis zbytecny taffic uzivatelum + zpomalis load... ja tohle resil zpusobem kombinaci s databazi (muzes pouzit i soubory, nebo vyuzit cteni seznamu souboru pres adresarove funkce) jde o to, ze obrazky neukladam jen jako: $ID.".jpg", ale pridam k tomu hash funkce md5() z casu vracenym funkci time() cili: $filename = $ID."_".md5(time()).".jpg"; tento hash pak ulozim do databaze jako jmeno souboru s tim, ze pri kazdem dalsim uploadu se vygeneruje novy hash a kazdy prohlizec to pak povazuje "spravne" za novy obrazek... podoba je pak napr. nasledujici: 2_1100844949419d8f95d88b2.jpg je to sice slozitejsi reseni nez vypnout cache ale jiste se ti to vrati</HTML>
-
Jo o něčem podobném jsem přemýšlel... jen, je nutné tam dávat MD5(); ? nestačí jen ten time(); ? Ten je logicky taky pokaždý jiný.. Jen mě ještě napadá jak to vyřešit, když tohle budu chtít použít v systému, kde ty názvy neukládám do databáze. Při načítání stránky zjišťuji zda obrázek existuje pomocí File_Exists(); pak teprve zobrazuji. Da se zbytek řetězce v podmínce nahradit '%'? Něco jako: if (File_Exists($id."_".%.".jpg")) nevím zda jsem to napsal dobře...
-
nebo do zdrojáku dát echo '<img src="'.$id.'.jpg&cas='.filemtime($id.'.jpg').'" width="..." height="...">'; Prostě předávat jako parametr v tý cestě čas změny souboru, takže když se parametr změní, prohlížeč načítá znova. Jako by to byla jiná stránka. A soubor se pořád může jmenovat stejně.
-
jseš si jistý že tohle je 100%ntní ?
-
<HTML>ne to md5 je tam vicemene zbytecne, je to jen na pohled ;) je to jen demonstrace o unikatnim nazvu (kterou zvladne i uniqid() nebo time() sam) pro pripad ze nazvy ukladat nechces, pujde to napr: function obrazek($nazev, $adresar = "image/") { $d = dir($adresar); while (false !== ($entry = $d->read())) { if (substr($entry, 0, strlen($nazev)) == $nazev) return $entry; } $d->close(); return FALSE; } echo "Cely nazev obrazku je: ".obrazek("mojefotka"); // demonstrace</HTML>
-
Tenhle způsob se mi ale zdá jednodušší <img src="'.$id.'.jpg&cas='.filemtime($id.'.jpg').'" width="..." height="...">'; odzkoušim to a pokud to bude makat tak sáhnu po něm. Jinak díky za rady