| Autor | Zpráva | ||
|---|---|---|---|
| leonek Profil |
#1 · Zasláno: 30. 4. 2011, 12:40:56 · Upravil/a: leonek
Dobrý den, doufám že svůj problém popíšu dost výstižně:
Mám dvě stránky - košík a seznam produktů. V seznamu produktů a jedna řádka s "x položek za x,- Kč". Tato řádka funguje jako přímí odkaz na druhou stránku s košíkem. 1. Když něco přidám do košíku a vrátím se do seznamu tak se hodnoty v této řádce změní až po F5. (ale vzhledem k tomu že tyto hodnoty již v cookies jsou - ověřeno) 2. Když se přes tu řádku dostanu do košíku tak je prázdný. Zase musím dát F5. Prostě to bere nějaký stará data. Předpokládám že to má souvislost s tím jak si browsery načítají stránky. Asi budu muset použít nějaký kód na to aby se stránka načetla znovu celá? Děkuji za případně odpovědi. |
||
| l564 Profil |
#2 · Zasláno: 30. 4. 2011, 12:51:33
leonek:
„browsery“ Jen přeložím abys si neporušoval pravidla | prohlížeče Nechceš nikam nahrát ty scripty (když přidáváš a košík) a nalinkovat jsem to. Protože takto ti nepomůžeme zdali tu není čeho se chytnout. |
||
| leonek Profil |
#3 · Zasláno: 30. 4. 2011, 13:13:41
Tady je určení hodnot pro tu řádku:
$zobrazit_pocet = 0;
$zobrazit_cenu = 0;
if (!empty($_SESSION['kosik'])){
$zobrazit_pocet += count($_SESSION["kosik"]);
$zobrazit_cenu = $_COOKIE['celkova_cena'];
}A takto ji zobrazuju: V košíku<br><b><? echo $zobrazit_pocet; ?></b> položek za <b><? echo $zobrazit_cenu; ?>,- Kč</b> Problém je v tom že když něco v tom košíku provedu tak se jednak nezmění hodnoty v této řádce a navíc když se přes ni dostanu do košíku tak je bez změn. |
||
| Tori Profil |
#4 · Zasláno: 30. 4. 2011, 13:22:32
leonek:
1. Kam vlastně ukládáte počty zboží a ceny - session nebo cookie? Část dat ze session kopírujete do cookie, anebo jaký je mezi nimi vztah (když v této ukázce čtete z obou)? 2. Počítáte s tím, že data uložená pomocí setcookie() jsou dostupná v poli $_COOKIE až při následujícím požadavku (další stránka, F5,..)? |
||
| leonek Profil |
#5 · Zasláno: 30. 4. 2011, 13:41:54
Druh zboží a počet kusů ukládám do session a celkovou cenu do cookie.
Když v košíku něco změním tak se ta stránka obnoví, spočítá a zobrazí se aktuální stav. Když pak přejdu na ten seznam tak je to v podstatě už třetí stránka v pořadí aktualizací. To že v tom hraje roli prohlížeč jsem usoudil po té co jsem zjistil že se data v řádce "x položek za x,- Kč" aktualizují až po F5 (nezávisle na tom kolikrát jsem mezi těmito stránkami již klikal) a navíc když do košíku přejdu přes tuto řádku (funguje jako přímí odkaz do košíku) tak jsou tam stará data. |
||
| Keeehi Profil |
#6 · Zasláno: 30. 4. 2011, 14:01:23
leonek:
Nemůže problém způsobovat keš prohlížeče? l564: Úplně každé slovo se překládat nemusí. Spíše jde o výrazivo typu "Hi all" nebo "pls ,pls ,pls!!!!" A když už chceš někoho opravovat, tak si dej pozor, aby jsi ty chyby nedělal sám taky. Takže: „nalinkovat“ Jen přeložím aby jsi neporušoval pravidla | vložit odkaz |
||
| leonek Profil |
#7 · Zasláno: 30. 4. 2011, 14:10:08
Pravděpodobně ano, ale nevím jak to udělat aby se stránka načítala pokaždé celá.
|
||
| Keeehi Profil |
#8 · Zasláno: 30. 4. 2011, 14:17:59 · Upravil/a: Keeehi
leonek:
Keš prohlížeče se nastavuje v každém konkrétním prohlížeči. Můžeš zkusit přidat do stránky: Header("Pragma: No-cache");
Header("Cache-Control: No-store, No-cache, Must-revalidate");
Header("Expires: ".Date("D, d M Y H:i:s")." GMT"); |
||
| leonek Profil |
#9 · Zasláno: 30. 4. 2011, 14:30:58
Už to funguje. Děkuji "Keeehi". Vložil jsem tvůj kód + místo cookie jsem použil session.
|
||
|
Časová prodleva: 15 let
|
|||
0