Autor Zpráva
leonek
Profil
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
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
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
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
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
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
Pravděpodobně ano, ale nevím jak to udělat aby se stránka načítala pokaždé celá.
Keeehi
Profil
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
Už to funguje. Děkuji "Keeehi". Vložil jsem tvůj kód + místo cookie jsem použil session.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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